删除文本行并重写文件

时间:2017-09-04 17:11:54

标签: java

这是我的代码。一切都有效,除了最后两行。我试图从.txt中删除一行,并将该文件重写为临时文件,然后将tempfile重命名为original。最后两行被忽略了。这是错误:

https://i.gyazo.com/66a320aeaf487837ce64fe3424074de6.png

这两行被忽略了:

inputFile.delete();

tempFile.renameTo(INPUTFILE);

File inputFile = new File(a.getDirectoryData() + "UserTwo.txt");
File tempFile = new File(a.getDirectoryData() + "TempUserTwo.txt");

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

while((currentLine = reader.readLine()) != null) {
    String trimmedLine = currentLine.trim();
    if(trimmedLine.equals(a.username + ":" + a.password)) continue;
    writer.write(currentLine + "\r\n");

}
reader.close();
writer.close();
inputFile.delete();
tempFile.renameTo(inputFile);

1 个答案:

答案 0 :(得分:0)

看起来无法删除文件。你能尝试使用

吗?
Files.delete(inputFile.toPath()) 

代替?

来自docs

  

请注意,Files类定义了删除方法,以便在无法删除文件时抛出IOException。这对于错误报告和诊断无法删除文件的原因非常有用。