猿问

如何将整个文件读入字符串变量

我有很多小文件,我不想逐行阅读它们。

Go中是否有一个将整个文件读入字符串变量的函数?


UYOU
浏览 234回答 3
3回答

杨__羊羊

如果只希望内容为string,则简单的解决方案是使用程序包中的ReadFile函数io/ioutil。此函数返回一个切片bytes,您可以轻松将其转换为string。package mainimport (    "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'}

人到中年有点甜

我认为,如果您真的很担心串联所有这些文件的效率,最好的办法是将它们全部复制到相同的字节缓冲区中。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()具有您要查找的数据。
随时随地看视频慕课网APP

相关分类

Go
我要回答