У меня есть требование прочитать Огромный Плоский файл, без сохранения всего файла в памяти. Это плоский файл с несколькими сегментами, каждая запись начинается с записи заголовка, обозначенной «H» в начале, за которой следуют многие строки, а затем снова записи заголовка, этот шаблон повторяется .Чтение огромного файла с фиксированной шириной
HXYZ CORP 12/12/2016
R1 234 qweewwqewewq wqewe
R1 234 qweewwqewewq wqewe
R1 234 qweewwqewewq wqewe
R2 344 dfgdfgdf gfd df g
HABC LTD 12/12/2016
R1 234 qweewwqewewq wqewe
R2 344 dfgdfgdf gfd df g
HDRE CORP 12/12/2016
R1 234 qweewwqewewq wqewe
R2 344 dfgdfgdf gfd df g
R2 344 dfgdfgdf gfd df g
Я хочу прочитать набор записей за раз, например.
HDRE CORP 12/12/2016
R1 234 qweewwqewewq wqewe
R2 344 dfgdfgdf gfd df g
R2 344 dfgdfgdf gfd df g
Как я могу добиться этого иметь в виду, что я не хочу, чтобы держать весь файл в память Есть ли стандартная библиотека, что я могу использовать для этой цели? Я пробовал использовать некоторые реализации без особого успеха, я использовал Line Iterator Apache, но это читается по строкам.
Любая помощь или предложения будут высоко оценены.
Что не так, если вы читаете строки за строкой? –
В любом случае в i/o буферизуется более крупные куски (которые вы обычно можете указать). Часть «строка за строкой» - это просто интерфейс и, вероятно, самый удобный для вашего файла. – pvg
Возможно, я ошибаюсь, поскольку я новичок в этой области. Мое предположение заключается в том, что я не могу читать строки за строкой, потому что между строкой заголовка и строкой заголовка могут быть 3 вида записей R1, R2, R3, которые являются необязательными, повторяемыми и имеют разную ширину. В моем прецеденте требуется прочитать всю запись, установленную за раз. –