2015-12-24 1 views
-1

У меня есть проблема с кодированием в Java. При чтении текстового файла. (Файл с фиксированной длиной файла) Несколько строк составляют элемент. Но несколько предметов могут быть связаны с одним и тем же предметом. Элементы (разделы строк) распределяются по файлу. Теперь читаем в Java и создаем свои объекты. (Уже делаю это, поэтому не вопрос.) Мне нужно знать, является ли этот конкретный элемент последним предметом, связанным с конкретным предметом. (Мне нужно знать, поступают ли дополнительные товары или нет.)При чтении файла. Как вы можете узнать, что вы читаете последний элемент соответствующей серии?

У кого-нибудь есть изящное решение этой проблемы. (Ввод их в память - проблема. Файлы размером с GB). Я мог бы записать все записи в базу данных. Но я хочу избежать накладных расходов, связанных с написанием и чтением в sql DB.

+0

Невозможно ответить на ваш вопрос, не видя специфику формата вашего файла. – dasblinkenlight

+0

, если вы не знаете, сколько предметов есть, и если вы не можете сказать, что это последний, посмотрев на него, вам нужно будет прочитать весь файл. Один из способов можно начать, разделив файл среди других файлов, по одному на каждого, затем обрабатывать эти файлы один за другим. – njzk2

ответ

0

С пропуском: нет.

Чтение файла дважды дает вам кучу вариантов:

  • Первый проход сортирует детали раздела, второй проход читает в порядках
  • Первый проход подсчитывает элементы в каждой секции, второй проход, то знает, как много элементов в строке
  • Наверное, больше.
+0

Чрезвычайно неэффективен. Правильная стандартизация форматов с разделителями могла сделать это за один проход, и будет намного лучше. – XenoRo

+0

Ну, я предположил, что формат дан. Очевидно, что если вы контролируете формат, вы можете сделать намного больше. – ZeissS

+0

Приветствую вас, спасибо, что подумали. – user1389486

Смежные вопросы