(1)如何打开一个文件并读取:
file, err := os.Open("input.dat")if err != 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 file.Close()iReader := bufio.NewReader(file)for {str, err := iReader.ReadString('\n')if err != nil {return // error or EOF}fmt.Printf("The input was: %s", str)}
(2)如何通过切片读写文件:
func cat(f *file.File) {const NBUF = 512var buf [NBUF]bytefor {switch nr, er := f.Read(buf[:]); true {case nr < 0:fmt.Fprintf(os.Stderr, "cat: error reading from %s: %s\n",f.String(), er.String())os.Exit(1)case nr == 0: // EOFreturncase nr > 0:if nw, ew := file.Stdout.Write(buf[0:nr]); nw != nr {fmt.Fprintf(os.Stderr, "cat: error writing from %s: %s\n",f.String(), ew.String())}}}}