How to delete a line from a text file with java using scanner

我们两清 提交于 2019-11-27 08:40:16

问题


I have text file called BookingDetails.txt

inside the file there's a line of records

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

It goes from

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

I want to create a user input function in which when the user enters the first name and the last name, the whole line is deleted. But note that it will only affect that particular line as they will be more booking entry in the text file.

This is only a part of my program that I don't know how to do. I'm stuck here basically.

The program will look like this.

Welcome to the delete menu:

Enter first name: Bla bla bla Enter last name: Bla

Then a message will come out saying record has been deleted.


回答1:


Try something like this. The code reads each line of a file. If that line doesn't contain the name, The line will be written to a temporary file. If the line contains the name, it will not be written to temp file. In the end the temp file is renamed to the original file.

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);


来源:https://stackoverflow.com/questions/20048633/how-to-delete-a-line-from-a-text-file-with-java-using-scanner

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!