我有一个名为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
然后会出现一条消息,说记录已被删除。
答案 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);