go语言io reader_如何从io.Reader 中读数据

本文深入探讨Go语言中的io.Reader接口,介绍如何从io.Reader中读取数据,包括直接读取、使用io.Copy、strings.Builder及ioutil.ReadAll方法,并通过实例演示各个方法的用法,帮助Go语言开发者提升数据读取效率。
摘要由CSDN通过智能技术生成

女主宣言

Go语言以其本身具有的高并发特性,在云计算开发中,得到了广泛的应用,也深受广大开发者的欢迎。但是大家对go语言真的理解了么?本文作者经过对go语言的多年实践应用,现对go语言中如何从io.Reader中读数据进行了详细介绍,相信对于go语言爱好者有很大的帮助。下来就跟随作者一起学习下吧。

PS:丰富的一线技术、多元化的表现形式,尽在“360云计算”,点关注哦!

2ee185457878212050abeb7c23e5b0b2.png

1

概述

开发过程中,我们经常从io.Reader中读取数据。

type Reader interface {

   Read(p []byte) (n int, err error)

}

  1. 一次最多读取len(p)长度的数据。
  2. 当读取遭遇到error或EOF, 会返回已读取的数据的字节数和error或EOF。
  3. Read方法,不会修改len(p)的大小。
  4. 使用io.EOF 代表结束了。
Talk is cheap. Show me the code ,下面是一个从read读取的案例:

package main

import (

   "fmt"

   "io"

   "net"

)

func main() {

   // 建立tcp连接

   conn, err := net.Dial("tcp", "www.findme.wang:80")

   if err != nil {

      fmt.Println("dial error:", err)

      return

   }

   defer conn.Close() // 关闭连接

   // 构建http协议内容,发起http请求

   httpReq := `GET / HTTP/1.0

Host: www.findme.wang

User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36

Content-Type:application/x-www-form-urlencoded

Content-Length:0

`

   _, err = fmt.Fprintf(conn, httpReq)

   if err != nil {

      fmt.Println("http request error:", err)

      return

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值