我试图根据用户输入删除一行。 MYFILE.TXT样子:当从文件中删除数据时,临时文件将不会重命名为原始文件
Matt
Brian
John
然而,当我进入“布莱恩”(删除这条线),它是在临时文件(myTempFile.txt)删除,但不能更名回原来的文件(MYFILE )。为什么是这样?谢谢
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class testcode {
public static void main(String[] args) throws IOException {
File inputFile = new File("myFile.txt");
File tempFile = new File("myTempFile.txt");
Scanner myScan = new Scanner(System.in);
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
System.out.print("Please enter student first name: ");
String lineToRemove = myScan.nextLine();
String currentLine;
while((currentLine = reader.readLine()) != null)
{
String trimmedLine = currentLine.trim();
if(!trimmedLine.contains(lineToRemove)) {
writer.write(trimmedLine);
writer.newLine();
}
tempFile.renameTo(inputFile);
}
writer.close();
reader.close();
myScan.close();
}
}
任何人都可以帮忙吗? – Adam