Home > Article > Backend Development > Several methods for reading and writing files in golang
Several methods of reading and writing files in golang
The read files are placed in file/test: that is, the test under the file package file, write more files in it
Reading file method one:Use ioutil.ReadFile to read directly from the file into []byte
Related recommendations: golang tutorial
func Read0() (string){ f, err := ioutil.ReadFile("file/test") if err != nil { fmt.Println("read fail", err) } return string(f) }
Reading file method two: First read from the file to file, then read from file to buf, and then append buf to the final []byte
func Read1() (string){ //获得一个file f, err := os.Open("file/test") if err != nil { fmt.Println("read fail") return "" } //把file读取到缓冲区中 defer f.Close() var chunk []byte buf := make([]byte, 1024) for { //从file读取到buf中 n, err := f.Read(buf) if err != nil && err != io.EOF{ fmt.Println("read buf fail", err) return "" } //说明读取结束 if n == 0 { break } //读取到最终的缓冲区中 chunk = append(chunk, buf[:n]...) } return string(chunk) //fmt.Println(string(chunk)) }
Reading file method three: First read from file to file, then read from file to Reader, read from Reader to buf, and buf is finally appended to []byte
//先从文件读取到file, 在从file读取到Reader中,从Reader读取到buf, buf最终追加到[]byte,这个排第三 func Read2() (string) { fi, err := os.Open("file/test") if err != nil { panic(err) } defer fi.Close() r := bufio.NewReader(fi) var chunks []byte buf := make([]byte, 1024) for { n, err := r.Read(buf) if err != nil && err != io.EOF { panic(err) } if 0 == n { break } //fmt.Println(string(buf)) chunks = append(chunks, buf...) } return string(chunks) //fmt.Println(string(chunks)) }
Four ways to read files:Read into file, and then use ioutil to read the file directly into []byte
//读取到file中,再利用ioutil将file直接读取到[]byte中, 这是最优 func Read3() (string){ f, err := os.Open("file/test") if err != nil { fmt.Println("read file fail", err) return "" } defer f.Close() fd, err := ioutil.ReadAll(f) if err != nil { fmt.Println("read to fd fail", err) return "" } return string(fd) }
PHP Chinese Internet, a large number of Introduction to Programming Tutorials, welcome to learn!
The above is the detailed content of Several methods for reading and writing files in golang. For more information, please follow other related articles on the PHP Chinese website!