3 回答

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
如果只希望內(nèi)容為string,則簡(jiǎn)單的解決方案是使用程序包中的ReadFile函數(shù)io/ioutil。此函數(shù)返回一個(gè)切片bytes,您可以輕松將其轉(zhuǎn)換為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貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
我認(rèn)為,如果您真的很擔(dān)心串聯(lián)所有這些文件的效率,最好的辦法是將它們?nèi)繌?fù)制到相同的字節(jié)緩沖區(qū)中。
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())
這將打開(kāi)每個(gè)文件,將其內(nèi)容復(fù)制到buf中,然后關(guān)閉文件。根據(jù)您的情況,您可能實(shí)際上不需要轉(zhuǎn)換它,最后一行只是顯示buf.Bytes()具有您要查找的數(shù)據(jù)。
- 3 回答
- 0 關(guān)注
- 274 瀏覽
添加回答
舉報(bào)