Как добавить запись и автосортировать последовательный файл в Java? - PullRequest
1 голос
/ 26 февраля 2012
public void addTrainRecords(TrainData t){

    OpenFile();

    TrainData current = null;
    current = readRecord();

    while(current != null){

        current = readRecord();
    }
    writeRecord(t);



    //closeFile();
}

Мне нужно добавить записи и автосортировать данные записи по порядку Теперь я добавляю запись в файл последовательно, но пока не сортирую. моя запись является объектом TrainData с номером заказа

пример
Я добавляю поезд № 3
Затем добавьте поезд № 1
Я хочу отсортировать по 1, а затем по 3, добавив запись в файл
Кто-нибудь знает, как это сделать? Пожалуйста, помогите
спасибо

1 Ответ

0 голосов
/ 26 февраля 2012

Сохраните все свои записи в List<TrainData>, отсортируйте список с помощью Collections.sort(), затем выполните итерацию по списку и запишите каждую запись в файл.как вы делаете сейчас.На каждой итерации, если новая запись еще не была записана, сравнивают текущую запись с новой и, если она больше, чем новая, записывают новую запись, а затем записывают текущую запись.В конце цикла, если новая запись еще не была записана, запишите ее.

TrainData current = null;
boolean newRecordWritten = false;
for (current = readRecord(); current != null; current = readRecord()) {
    if (!newRecordWritten && firstBiggerThanSecond(current, t)) {
        writeRecord(t);
        newRecordWritten = true;
    }
    writeRecord(current);
}

if (!newRecordWritten) {
    writeRecord(t);
}
...