使用java在txt文件中删除一行和它下面的两行

时间:2012-03-10 15:18:00

标签: java file edit bufferedreader

问题:我需要删除预订。用户通过SimpleInOutDialog向我提供预订时间。然后我用缓冲的阅读器搜索文件是否包含该小时。

我需要做的是删除该行下面的小时和2行,因为有预订的数据。这里和txtFile的例子:

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

所以我寻找10:00然后10:00,Niel 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());}


    }

&#34; ...&#34;需要来代码。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

你的方法很糟糕。尝试按顺序处理文件。请记住,无论如何你都需要写它,所以试试这个:

(打开文件进行阅读,打开新文件进行写作)

  1. readLine - &gt;字符串变量
  2. 如果readLine是您的预订,请阅读接下来的两行而不做任何事情。
  3. 如果不是2)则将该行写入新文件。
  4. 刷新新文件并关闭它们。
  5. 删除旧文件并将新文件移至旧名称。
  6. 进行。