这是代码,但它不会删除存储的IP文件并将临时文件重命名为存储IP。两个文件都存在
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"));
好吧,调用 File.delete() 并不需要删除该文件。正如JavaDoc所说:一定要检查返回值。
忽略这一点(就像你一样)是错误的常见来源。
此删除/重命名很容易出错的一种情况是文件正在使用中。看到的解决方案包括使用额外的锁定文件。对于这么简单的事情来说太复杂了。
使用嵌入式数据库,如Java自己的Derby,这并不难。数据库不需要额外的预配。有很好的教程和简单的示例代码。