Closed wuyongxiu closed 8 years ago
小demo,测试下将文件一次全部读取到内存中的字符串变量里
① 创建buffer,结合io.copy func TestIOcopy(t *testing.T){ ts:=time.Now().UnixNano() buf:=bytes.NewBuffer(nil) file,_:=os.Open("F:/SVN/tempt/test.log") defer file.Close() io.Copy(buf,file) te:=time.Now().UnixNano() fmt.println(te-ts,len(b)) fmt.Println(buf.Len()) }
Size: 2881883 Time: 0.007s (5065行) Size:23055080 Time: 0.026s (40520行) Size: 79519720 Time: 0.098s (140000行) Size: 318078884 Time:0.463s (560000行)
② 使用ioutil读取文件所有内容 func Testioutil(t *testing.T){ ts:=time.Now().UnixNano() file,:=os.Open("F:/SVN/tempt/test.log") defer file.Close() b,:=ioutil.ReadAll(file) te:=time.Now().UnixNano() fmt.println(te-ts,len(b)) fmt.Println(len(b)) } 结果: Size:2881883 Time: 0.012s (5065行) Size:23055080 Time: 0.048s (40520行) Size: 79519720 Time: 0.129s (140000行) Size: 318078884 Time:0.379s (560000行)
小demo,测试下将文件一次全部读取到内存中的字符串变量里
① 创建buffer,结合io.copy func TestIOcopy(t *testing.T){ ts:=time.Now().UnixNano() buf:=bytes.NewBuffer(nil) file,_:=os.Open("F:/SVN/tempt/test.log") defer file.Close() io.Copy(buf,file) te:=time.Now().UnixNano() fmt.println(te-ts,len(b)) fmt.Println(buf.Len()) }
Size: 2881883 Time: 0.007s (5065行) Size:23055080 Time: 0.026s (40520行) Size: 79519720 Time: 0.098s (140000行) Size: 318078884 Time:0.463s (560000行)
② 使用ioutil读取文件所有内容 func Testioutil(t *testing.T){ ts:=time.Now().UnixNano() file,:=os.Open("F:/SVN/tempt/test.log") defer file.Close() b,:=ioutil.ReadAll(file) te:=time.Now().UnixNano() fmt.println(te-ts,len(b)) fmt.Println(len(b)) } 结果: Size:2881883 Time: 0.012s (5065行) Size:23055080 Time: 0.048s (40520行) Size: 79519720 Time: 0.129s (140000行) Size: 318078884 Time:0.379s (560000行)