2016-11-27 24 views
0

Я храню массив объектов в текстовом файле
Пример; объект = штат. Персонал состоит из идентификатора, имени и т. Д. Каждая строка в текстовом файле - StaffID, StaffName и т. Д.Запись массива объектов в текстовый файл в правильном положении

До сих пор каждый идентификатор персонала был только номером строки, поэтому при добавлении нового профиля персонала идентификатор является только предыдущим идентификатором +1 и может быть записана в конец файла.

Однако, я изменил структуру ID. Теперь он состоит из (сектор * 1000) + следующего числа. Например. 5 сотрудников, работающих в секторе 2, имеют идентификаторы 2001, 2002, 2003, 2004, 2005 гг.

Теперь моя проблема возникает, когда выполняется двоичный поиск. Предварительно было легко добавить новых сотрудников и по-прежнему иметь их в правильном порядке. Однако теперь мне нужен способ написать новый профиль в нужную позицию в текстовом файле.

вот некоторые фрагменты:

String staffData = staffID, staffName, staffAddress, staffMed; 

Это добавляется в массив персонала, который затем написан, используя следующий код:

try 
    { 
     FileWriter writer = new FileWriter(Filename, true); 
     BufferedWriter bWriter = new BufferedWriter(writer); 
     for(int i =0;i<freeLocation;i++) 
     { 

      String staffString = StaffArray[i].toString(); 

      bWriter.write(currentPositionStaffProfile); 
      bWriter.newLine(); 
     } 
     bWriter.close(); 
    } 

Текстовый файл выглядит следующим образом

1001, John, Address, n/a 
4001, Smith, Address, n/a 

Я хочу знать, как можно добавить профиль персонала, который может быть написан между строками в правильном чтобы идентификаторы персонала были в порядке возрастания, а не только до конца файла.

Спасибо

+0

Каков максимальный размер ваших данных? –

ответ

0

Вы должны загрузить файл в в памяти данных-магазине, как HashMap или TreeMap и вставить новые объекты к нему.

Затем для записи в файл итерации по TreeMap (предоставляется отсортированный порядок ключей) ИЛИ получить ключи от HashMap и отсортировать их.

Таким образом, вы будете делать все вставку/обновление/удаление на этом HashMap/TreeMap и просто записывать данные в файл в отсортированном порядке, когда это необходимо. Таким образом, вам не нужно беспокоиться о том, какую строку писать (как это делает ваше текущее/предлагаемое решение).

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

  • Нет связанных вопросов^_^