如何使用Java中的FileOutputStream类删除文件的内容?

时间:2016-04-24 04:26:53

标签: java

我正在使用java中的FileOutputStream类,但我不知道如何删除"内容"一个文件(我需要覆盖文件的主要原因)。

4 个答案:

答案 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