io读取不固定字符串
func main() {
reader:=strings.NewReader("今天又是美好的一天hello world一天")
for {
p:=make([]byte,4)
n,err:=reader.Read(p)
if err!=nil{
//读到结尾
if err==io.EOF{
fmt.Println("读取完成")
break
}
log.Fatal(err)
}
fmt.Printf("读取到的内容:%v \n",string(p[:n]))
}
}
以上读取仅仅读取4个字节位,还会乱码,当然,也可以设置大一些,如果不固定,那就如下改写
func main() {
reader:=strings.NewReader("今天又是美好的一天hello world一天")
num:=0
all:=make([]byte,0)
for {
p:=make([]byte,4)
n,err:=reader.Read(p)
if err!=nil{
//读到结尾
if err==io.EOF{
fmt.Println("读取完成")
fmt.Printf("读取到的内容:%v \n",string(all[:num]))
break
}
log.Fatal(err)
}
num+=n
all=append(all,p...)
}
}