在向其中写入更多信息之前,我需要删除文件的内容。我尝试了不同的方法,例如我删除内容但文件大小保持相同的位置,当我在删除后开始写入内容时,在我的新数据写入之前,空白洞似乎是删除的大小
这就是我尝试过的......
BufferedWriter bw;
try {
bw = new BufferedWriter(new FileWriter(path));
bw.write("");
bw.close();
}
catch (IOException e) {
e.printStackTrace();
}
我也试过这个......
File f = new File(file);
FileWriter fw;
try {
fw = new FileWriter(f,false);
fw.write("");
}
catch (IOException e) {
e.printStackTrace();
}
有人可以帮我解决这个问题。
答案 0 :(得分:9)
FileWriter (path, false)
false会告诉编写者截断文件而不是附加到文件中。
答案 1 :(得分:0)
在致电flush()
之前尝试拨打close()
。
FileWriter writer = null;
try {
writer = ... // initialize a writer
writer.write("");
writer.flush(); // flush the stream
} catch (IOException e) {
// do something with exception
} finally {
if (writer != null) {
writer.close();
}
}
答案 2 :(得分:0)
可能是因为你没有关闭FileWriter,fw.close();你也不需要“删除”旧数据,只需开始写,它就会覆盖旧数据。所以要确保你到处都是。
这对我有用:
File f=new File(file);
FileWriter fw;
try {
fw = new FileWriter(f);
fw.write("");
fw.close();
} catch (IOException e) {
e.printStackTrace();
}