Как получить кусочек байта большого файла? - PullRequest
0 голосов
/ 24 октября 2019

У меня большой файл, хранящийся в 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

Как мне избежать этого?

1 Ответ

0 голосов
/ 24 октября 2019

С помощью yazgazan Мне удалось найти решение с помощью File.ReadAt:

f, err := os.Open(path)
check(err)
text := make([]byte, y-x)
_, err = f.ReadAt(text, int64(x))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...