我有一个文件存储在我的系统中,我想从中删除某些数据。删除文件中的某些数据
我通过制作一个临时文件来实现这一点,然后将所有原始文件数据写入它,但没有我不想要的数据。然后,我用与原始文件相同的名称重命名该临时文件以替换它。
一切都很顺利,除了有删除原始文件和重命名临时文件的问题。
起初,我有原始文件的数据,然后在运行应用程序后,我有原始文件与相同的数据没有任何删除,临时文件命名(文件)与删除后的数据。
下面是我使用的方法:
public void remove(String path, String link, String ext) throws IOException {
File file = new File(path);
File temp = File.createTempFile("file", ext, file.getParentFile());
String charset = "UTF-8";
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), charset));
PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(temp), charset));
for (String line; (line = reader.readLine()) != null;) {
line = line.replace(link, "");
writer.println(line);
}
reader.close();
writer.close();
file.delete();
temp.renameTo(file);
}
什么“* temp文件不服从重命令*”实际上是指? – 2013-05-12 23:02:33
意味着临时文件保留它的名称,并且原始文件保留在系统中而没有删除 – 2013-05-12 23:15:48
首先我有原始文件与数据,然后运行应用程序后,我有原始文件与相同的数据没有任何删除和临时文件名称(文件)与删除后的数据 – 2013-05-12 23:18:50