为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
UYOU 2021-05-14 18:23:17
我有很多小文件,我不想逐行阅读它们。Go中是否有一个将整个文件读入字符串变量的函数?
查看完整描述

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'

}


查看完整回答
反对 回复 2021-05-24
?
人到中年有点甜

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()具有您要查找的数据。


查看完整回答
反对 回复 2021-05-24
  • 3 回答
  • 0 关注
  • 233 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信