golang读写文件的几种方法
读取的文件放在file/test:也就是file包下的test这个文件,里面写多一点文件
读文件方式一:利用ioutil.readfile直接从文件读取到[]byte中
相关推荐:golang教程
func read0() (string){ f, err := ioutil.readfile("file/test") if err != nil { fmt.println("read fail", err) } return string(f)}
读文件方式二:先从文件读取到file中,再从file读取到buf,buf再追加到最终的[]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))}
读文件方式三:先从文件读取到file, 在从file读取到reader中,从reader读取到buf, buf最终追加到[]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))}
读文件方式四:读取到file中,再利用ioutil将file直接读取到[]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)}
,大量编程入门教程,欢迎学习!
以上就是golang读写文件的几种方法的详细内容。