簡體   English   中英

如何使用 Java 中的 FileOutputStream 類刪除文件的內容?

[英]How to delete the contents of a file using the FileOutputStream class in Java?

我正在使用 java 中的 FileOutputStream 類,但我不知道如何刪除文件的“內容”(我需要覆蓋文件的主要原因)。

如果你想刪除文件的內容,而不是文件本身,你可以這樣做:

PrintWriter pw = new PrintWriter("file.txt");
pw.close();

幾秒鍾的谷歌搜索讓我得到了這個:

如何在不刪除自身的情況下刪除文本文件的內容

如何清除文本文件而不刪除它?

要完全刪除文件,請執行以下操作:

File file = new File("file.txt");
f.delete();

調用File.delete()刪除此抽象路徑名表示的文件或目錄。

File f = new File("foo.txt");
if (f.delete()) {
    System.out.println("file deleted");
}

我需要覆蓋文件的主要原因......

一種方法是使用File.delete()Files.delete(Path)刪除文件。 后者更可取,因為它可以告訴您刪除失敗的原因。

另一種方法是簡單地打開文件進行寫入。 如果您不以“追加”模式打開,則打開要寫入的文件會將文件截斷為零字節。


請注意,這兩種方法的行為存在細微差別。 如果您刪除一個文件,然后創建一個新文件,則打開相同文件的任何其他應用程序都不會注意到。 相比之下,如果您截斷文件,則打開該文件的其他應用程序在讀取時觀察截斷的影響。

實際上,這取決於平台。 在某些平台上,一個 Java 應用程序試圖打開一個文件來讀取另一個文件已打開用於寫入的文件將得到一個異常。

是的,您可以使用FileOutputStream 給出的所有答案都是關於PrintWriter但同樣可以用FileOutputStream來完成。 空間的整數表示是 32。所以簡單地將文件傳遞給FileOutputStream的實例: FileOutputStream out = new FileOutputStream(file); 寫出(32);

這將清除文件的內容。 當然只使用這個你想用FileOutputStream做它,否則使用PrintWriter

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM