我有一个Go程序,它将字符串写入文件.我有一个迭代20000次的循环,在每次迭代中我将大约20-30个字符串写入文件.我只是想知道哪个是将其写入文件的最佳方式.
方法1:在代码的开头保持打开文件指针,并为每个字符串写入.它使它成为20000*30的写操作.
方法2:使用bytes.Buffer Go并将所有内容存储在缓冲区中并在末尾写入.在这种情况下,文件指针应该从代码的开头或代码的末尾打开.有关系吗?
我假设方法2应该更好.有人可以用一个理由证实这一点.如何立即写作比定期写作更好.因为文件指针无论如何都会打开.
我使用f.WriteString(<string>)和buffer.WriteString(<some string>)缓冲区类型的bytes.Buffer和f是文件指针打开.
我需要在go lang中只获得a )请求的前几行.http.Get(<url>是否有任何方法可以做到.我不需要整个响应.我需要匹配一个只在前几行中存在的模式.获取整个响应并获得正则表达式使得它非常慢,因为响应中的字符数非常大.这是最快的方法.目前我在做
http.Get(<url>)
Run Code Online (Sandbox Code Playgroud)
//返回一个响应
ioutil.readAll(response of the above url)
Run Code Online (Sandbox Code Playgroud)
//返回一个字节数组
MyFunction(search for reg exp in the byte array)
Run Code Online (Sandbox Code Playgroud)
有没有任何方法可以获取几行或避免获取整个响应并匹配模式.