package main import ( "bufio" "fmt" "io" "os" "strings" ) func main() { fh,ferr := os.Open("d:\\n.txt") if ferr != nil { fmt.Printf("An error occurred on opening the inputfile\n" + "Does the file exist?\n" + "Have you got acces to it?\n") return } defer fh.Close() inputread := bufio.NewReader(fh) for { input,ferr := inputread.ReadString('\n') if ferr == io.EOF { return } fmt.Println(strings.TrimSpace(input)) } }
读取gzip格式文件:
package main import ( "bufio" "compress/gzip" "fmt" "os" ) func main() { fName := "MyFile.gz" var r *bufio.Reader fi,err := os.Open(fName) if err != nil { fmt.Fprintf(os.Stderr,"%v,Can't open %s: error: %s\n",os.Args[0],fName,err) os.Exit(1) } fz,err := gzip.NewReader(fi) if err != nil { r = bufio.NewReader(fi)//解压失败(还是读取原来文件)gz文件还是读取原始文件 } else { r = bufio.NewReader(fz)//解压成功后读取解压后的文件 } for { line,err := r.ReadString('\n') if err != nil { fmt.Println("Done reading file") os.Exit(0) } fmt.Println(line) } }
package main import ( "bufio" "fmt" "os" ) func main() { outputFile,outputError := os.OpenFile("output.dat",os.O_WRONLY|os.O_CREATE,0666)//0666是标准的权限掩码,关于打开标识看下面 if outputError != nil { fmt.Printf("An error occurred with file creation\n") return } defer outputFile.Close() outputWriter := bufio.NewWriter(outputFile) outputString := "hello world!\n" for i := 0; i < 10; i++ { outputWriter.WriteString(outputString) } outputWriter.Flush() }os.O_RDONLY : the read flag for read-only access os.WRONLY : the write flag for write-only access os.O_CREATE : the create flag: create the file if it doesn’t exist os.O_TRUNC : the truncate flag: truncate to size 0 if the file already exists