2017-09-04 6 views
0

ここに私のコードです。最後の2行を除いてすべてが機能します。 .txtから行を削除し、そのファイルを一時ファイルに書き換えてから、一時ファイルの名前を元の名前に変更しようとしています。最後の2行は無視されています。テキストの行を削除してファイルを書き換えます

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

これらの2行は無視されている:ここでエラーが何であるかである

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

[Javaを使用してファイルの名前を変更する](https://stackoverflow.com/questions/1158777/rename-a-file-using-java) – nagendra547

+0

の複製が実際にはエラーではありません。これは、.delete()関数と.renameTo()関数が成功または失敗を示す値を返すというコード検査です。あなたはその戻り値を無視しています。 .delete()が共有違反のために失敗した場合、または既存のファイルに名前を変更しようとしているために.renameTo()が失敗した場合はどうなりますか?あなたはそれらをチェックしていません。 – JJF

+0

私はこのコード行を追加しましたが、それでも動作しませんでした。 if(inputFile.exists()){ inputFile.delete(); } – joeybots59

答えて

0

ファイルを削除できないようです。試してみてください

Files.delete(inputFile.toPath()) 

代わりに使用できますか? docsから

:ファイルのクラスは、ファイルを削除できない場合はIOExceptionをスローするには、deleteメソッドを定義すること

注意。これは、エラー報告とファイルを削除できない理由を診断するのに便利です。

関連する問題