如何使用扫描程序使用java从文本文件中删除一行

时间:2013-11-18 13:09:31

标签: java java.util.scanner

我有一个名为BookingDetails.txt的文本文件

文件内部有一行记录

Abid  Akmal  18/11/2013  0122010875  Grooming  Zalman  5  125.0  Dog

它来自

First name: Abid, Last name: Akmal, Date, phone number, type of services, pet name, days of stay, cost, and type of pet.

我想创建一个用户输入函数,当用户输入名字和姓氏时,整行都被删除。但请注意,它只会影响该特定行,因为它们将在文本文件中提供更多预订条目。

这只是我程序的一部分,我不知道该怎么做。我基本上都被困在这里。

程序将如下所示。

欢迎使用删除菜单:

输入名字:Bla bla bla 输入姓氏:Bla

然后会出现一条消息,说记录已被删除。

1 个答案:

答案 0 :(得分:3)

尝试这样的事情。代码读取文件的每一行。如果该行不包含名称,则该行将被写入临时文件。如果该行包含名称,则不会将其写入临时文件。最后,临时文件被重命名为原始文件。

File inputFile = new File("myFile.txt");   // Your file  
File tempFile = new File("myTempFile.txt");// temp file

BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));

Scanner scanner = new Scanner(System.in);
System.out.println("Enter firstName");
String firstName = scanner.nextLine();
System.out.println("Enter lastName");
String lastName = scanner.nextLine();

String currentLine;

while((currentLine = reader.readLine()) != null) {

    if(currentLine.contains(firstName) 
         && currentLine.contains(lastName)) continue;

    writer.write(currentLine);
}

writer.close();
boolean successful = tempFile.renameTo(inputFile);
System.out.println(successful);