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...)
		}
	}
posted @ 2024-04-04 17:24  柠檬橘  阅读(2)  评论(0编辑  收藏  举报