go语言中流读取文件
package main
import (
"fmt"
"io"
"os"
)
//通过流式读取文件
func main() {
file, err := os.Open("/Users/java0904/Downloads/json.txt")
if err != nil {
fmt.Println("读取文件错误", err)
return
}
defer file.Close()
//注意这里切片要初始化容量
byteSlice := make([]byte,256)
var allByte []byte
for {
readByteNum, err := file.Read(byteSlice)
if err== io.EOF {
break;
}
if err != nil {
fmt.Println(err)
}
//注意append切片的时候后面要加上三个点...
//注意当最后一次读取当时候,有可能读取当不是256个字节,
//所以不能把byteSlice整个进行append,否则会出现数据重复,这里是个坑
allByte = append(allByte,byteSlice[:readByteNum]...)
}
fmt.Println(string(allByte))
}