3 回答
TA贡献1943条经验 获得超7个赞
如果只希望内容为string,则简单的解决方案是使用程序包中的ReadFile函数io/ioutil。此函数返回一个切片bytes,您可以轻松将其转换为string。
package main
import (
"fmt"
"io/ioutil"
)
func main() {
b, err := ioutil.ReadFile("file.txt") // just pass the file name
if err != nil {
fmt.Print(err)
}
fmt.Println(b) // print the content as 'bytes'
str := string(b) // convert content to a 'string'
fmt.Println(str) // print the content as a 'string'
}
TA贡献1895条经验 获得超7个赞
我认为,如果您真的很担心串联所有这些文件的效率,最好的办法是将它们全部复制到相同的字节缓冲区中。
buf := bytes.NewBuffer(nil)
for _, filename := range filenames {
f, _ := os.Open(filename) // Error handling elided for brevity.
io.Copy(buf, f) // Error handling elided for brevity.
f.Close()
}
s := string(buf.Bytes())
这将打开每个文件,将其内容复制到buf中,然后关闭文件。根据您的情况,您可能实际上不需要转换它,最后一行只是显示buf.Bytes()具有您要查找的数据。
- 3 回答
- 0 关注
- 233 浏览
添加回答
举报