При чтении всего файла в массив byte[]
, если файл больше, чем объем пространства, доступного в памяти для JVM, вы получите OutOfMemoryError
.
Вместо этого вы можете использовать BufferedReader
в сочетании с FileReader
. Это позволит вам читать файл по частям, не загружая все данные в память.
BufferedReader in = new BufferedReader(new FileReader("/path/to/my/file"));
Чтобы загрузить данные по записи, просто прочитайте 300 байтов за раз, когда вы вызываете BufferedReader.read
. Если вы предпочитаете работать с отдельными полями, вместо чтения 300 байтов за раз, просто прочитайте количество байтов, соответствующее длине следующего поля.