我正在使用java中的FileOutputStream类,但我不知道如何删除"内容"一个文件(我需要覆盖文件的主要原因)。
答案 0 :(得分:2)
如果要删除文件内容而不删除文件本身,可以执行以下操作:
PrintWriter pw = new PrintWriter("file.txt");
pw.close();
几秒钟的谷歌搜索让我知道了这一点:
how to delete the content of text file without deleting itself
How to clear a text file without deleting it?
要完全删除文件,请执行以下操作:
File file = new File("file.txt");
f.delete();
答案 1 :(得分:0)
调用File.delete()
删除此抽象路径名表示的文件或目录。
File f = new File("foo.txt");
if (f.delete()) {
System.out.println("file deleted");
}
答案 2 :(得分:0)
我需要覆盖文件的主要原因......
执行此操作的一种方法是使用File.delete()
或Files.delete(Path)
删除文件。后者是可取的,因为它可以告诉你删除失败的原因。
另一种方法是简单地打开文件进行写作。如果您未在“追加”模式下打开,则打开要写入的文件会将文件截断为零字节。
请注意,这两种方法的行为存在细微差别。如果删除文件然后创建新文件,则打开具有相同文件的任何其他应用程序将不会注意到。相反,如果您截断文件,那么打开文件的其他应用程序将在读取时观察截断的影响。
实际上,这取决于平台。在某些平台上,尝试打开文件以读取另一个文件已打开以进行写入的Java应用程序将获得异常。
答案 3 :(得分:0)
是的,您可以使用FileOutputStream
执行此操作。所有答案都说明了PrintWriter
,但FileOutputStream
可以做同样的事情。空间的int表示为32.因此,只需将文件传递给FileOutputStream
的实例,如下所示:
FileOutputStream out = new FileOutputStream(file);
out.write(32);
这将清除文件的内容。肯定只使用此功能,您只想使用FileOutputStream
进行此操作,否则请使用PrintWriter
。