这是代码,但它不删除storedIp文件并将tempFile重命名为storedIP。两个文件都存在
String host=ipParsing(hostName);
File tempFile= new File("tempFile.txt");
File strFile = new File("StoredIp.txt");
BufferedReader bufferReader = new BufferedReader( new FileReader(strFile));
BufferedWriter bw = new BufferedWriter(new FileWriter(tempFile));
String line;
while ((line = bufferReader.readLine()) != null) {
if(host.equals(line))
{
found=true;
line="";
}
bw.write(line);
if(!line.equals(""))
bw.newLine();
}
bw.close();
bufferReader.close();
strFile.delete();
tempFile.renameTo(new File ("StoredIP.txt"));
答案 0 :(得分:2)
好吧,调用File.delete()无需删除文件。 正如JavaDoc所说:一定要检查返回值。
忽略这一点(就像你一样)是一个常见的错误来源。
答案 1 :(得分:1)
这种删除/重命名容易出错的一种情况是文件正在使用。看到的解决方案包括使用额外的锁定文件。对于这么简单的事情来说太复杂了。
使用嵌入式数据库,就像java自己的Derby一样,这并不困难。数据库不需要额外的规定。有很好的教程和简单的示例代码。