分片读取http超大文件流
Golang中的HTTP发送get请求,在获取内容有两种情况。
Golang发送http get请求方式
resp, err := http.Get(sendUrl)
if err != nil {
fmt.Println("出错", err)
return
}
第一种方式是直接全部读取出来,这种方式在小数据量的时候很方便。
body变量直接全部接收resp响应内容
body, err2 := ioutil.ReadAll(resp.Body)
第二种方式,分片获取。
首先顶一个切片buf := make([]byte, 4096) 容量和大小都是4096个char字符(切片就是Golang自己的动态变长数组)
for无限循环读取,读取一块内容放入buf中。result 是一个string字符串,然后用 result 自动拼接。
for {
n, err:= resp.Body.Read(buf)
if err != nil || n == 0{
fmt.Println("出现错误")
break
}
result += string(buf[:n])
}
Golang中匹配正则
MustCompile内容不是单引号,而是 `
// 解析,编译正则表达式
ret := regexp.MustCompile(`