我有一个大文件存储在path
,并且想有效地从索引text
到索引x
切出一个字节片y
。到目前为止,这是我的代码:
content, err := ioutil.ReadFile(path)
check(err)
text = content[x:y]
// do something with text
当前实现的问题是我遇到了大文件的内存问题。
fatal error: runtime: out of memory
如何避免这种情况?
答案 0 :(得分:0)
在yazgazan的帮助下,我可以使用File.ReadAt提出解决方案:
f, err := os.Open(path)
check(err)
text := make([]byte, y-x)
_, err = f.ReadAt(text, int64(x))