java 清空文件內容的兩種方式


1.情景展示

  有時候,我們需要這樣一種場景:

  我們知道,在java中,往同一文件中寫入內容,如果該文件已經有內容的話,將要寫入的內容會自動拼接到原內容后面(不會破壞原文件內容)

  但是,如果我們不想保留原有內容的話,在寫入內容之前需要進行內容清空,如何實現?

2.方式一(推薦使用)

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
// 創建原文件對象
final File file = new File("C:\\Users\\Marydon\\Desktop\\123-測試記錄.txt" );
try {
    // 使用FileWriter不需要考慮原文件不存在的情況
    // 當該文件不存在時,new FileWriter(file)會自動創建一個真實存在的空文件
    FileWriter fileWriter = new FileWriter(file);
    // 往文件重寫內容
    fileWriter.write("");// 清空
    fileWriter.flush();
    fileWriter.close();
    log.info("原文件內容清除完畢");
} catch (IOException e) {
    e.printStackTrace();
}

  2021-05-21

  當文件處在使用中的時候,以*.log文件或者*.txt文件為例,不影響對文件內容的變更操作。

  之前的日志內容已被清空。 

說明:

獲取日志文件所在路徑,可以設置成動態獲取。

具體實現,見文末操作。

3.方式二

// 創建原文件對象
final File file =     new File(    "C:\\Users\\Marydon\\Desktop\\123-測試記錄.txt" );
// 方式二:刪除原文件、創建新文件
// 原文件存在即刪除
if (file.exists()) file.delete();

try {
    // 創建新(空)文件(原文件不存在時,才會創建成功)
    file.createNewFile();
    log.info(    "文件已被重新創建" );
}     catch (Exception e) {
    e.printStackTrace();
}

  使用前提:原文件不能被其它地方或程序占用。

  無論什么樣的文件,以日志文件為例,當項目啟動后,指定將日志輸出到sys.log中,此時,使用方式二將原文件刪除,然后創建新文件的方式並不會生效。 

注意:

  至於輸入中文導致的亂碼問題不在本文的處理范圍內,創建文件的字符集由操作系統決定,詳見文末推薦。

 

寫在最后

  哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!

 相關推薦:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM