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 關注
- 273 瀏覽
添加回答
舉報