2012-02-26 2 views
1
public void addTrainRecords(TrainData t){ 

    OpenFile(); 

    TrainData current = null; 
    current = readRecord(); 

    while(current != null){ 

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



    //closeFile(); 
} 

レコードと自動ソートレコードデータを追加する必要があります。 レコードをファイルに順次追加しますが、まだソートしません。 私の記録は、私はファイル
にレコードを追加しながら、列車番号3
が、その後、私はそれが1にソートする3列車番号1
を追加追加オーダー数


を持つTrainDataの目的であります誰もそれを行う方法を知っている?
おかげレコードを追加してJavaでシーケンシャルファイルを自動ソートする方法は?

答えて

0

ストア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); 
} 
関連する問題