2012-03-10 6 views
0

問題:私は予約を削除する必要があります。ユーザーはSimpleInOutDialogの予約トラフの時間を教えてくれます。ファイルにその時間が含まれている場合は、バッファリングされたリーダーで検索します。txtファイル内の行とその下の2行をjavaで削除

私がする必要があるのは、予約のデータがあるため、その行の下に1時間と2行の行を削除することです。ここだとtxtFileの例:

10:00 
Niel Butaye 
1 
09:00 
Tom Mullue 
2 

だから私は10時を探して、その後、10時00分、ニールButayeおよび削除する1必要。私はすでに持っている コードは次のとおりです。「...」コードを来る必要が

public void setAnnulation() { 
     //make SimpleInOutDialog  
       SimpleInOutDialog input = new SimpleInOutDialog("Delete reservation"); 
       reservation= input.readString("Give the hour (hh:mm)"); 
      try{ 

      BufferedReader br = new BufferedReader(new FileReader("L:\\Documents/Informatica/6de jaar/GIP/Reservations.txt")); 
      HashSet<String> hs = new HashSet<String>(); 
      int i = 0; 
      while ((line = br.readLine()) != null) 
      { 
       i++; 
       hs.add(br.readLine()); 

      } 
      if(hs.contains(reservation)){ 
       //klant bestaat 
      input.showString("The Reservation is being deleted", "");...} 





      }catch (Exception e){//Catch wanneer er errors zijn 
       System.err.println("Error: " + e.getMessage());} 


    } 

。どんな助け?

+1

この回答をお持ちですか? http://stackoverflow.com/questions/2471330/delete-a-line-from-a-file-in-java –

答えて

0

あなたのアプローチはファウルです。ファイルを順番に処理してください。 readLineは、次のを読んでご予約の場合>文字列

  • 変数 - のreadLine
  • (読み取りのために開いたファイル、書き込み用にオープンの新しいファイル)

      :あなたはとにかくそれを書く必要があることに注意してくださいので、これを試してみてください2行は何もせずに。
    1. 2)新しいファイルにその行を書き込みます。
    2. 新しいファイルをフラッシュして、両方を閉じます。
    3. 古いファイルを削除し、新しいファイルを古い名前に移動します。

    完了。

  • 関連する問題