使用 BufferedWriter 記得輸出文字時 flush()
BufferedWriter 是緩衝輸出流,呼叫 BufferedWriter 的 write() 方法時,文字資料先寫入到緩衝區裡,並沒有直接寫入到目的檔案。
必須呼叫 BufferedWriter 的 flush() 方法,才會清空這個緩衝流,把資料寫入到目的檔案裡。
不使用 flush 方法,直接呼叫 write() 和 close() 方法,不能把文字寫入檔案裡,並且會報錯 java.io.IOException: Stream closed
正確的輸出文字的方法:
// writeFile with BufferedWriter
public static void writeFile(String content, String outputPath){
File file = new File(outputPath);
System.out.println("檔案路徑: " + file.getAbsolutePath());
// 輸出檔案的路徑
if(!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
FileOutputStream fos = null;
OutputStreamWriter osw = null;
BufferedWriter out = null;
try {
// 如果檔案存在,就刪除
if(file.exists()){
file.delete();
}
file.createNewFile();
fos = new FileOutputStream(file, true);
osw = new OutputStreamWriter(fos);
out = new BufferedWriter(osw);
out.write(content);
// 清空緩衝流,把緩衝流裡的文字資料寫入到目標檔案裡
out.flush();
}catch(FileNotFoundException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}finally{
try{
fos.close();
}catch(IOException e){
e.printStackTrace();
}
try{
osw.close();
}catch(IOException e){
e.printStackTrace();
}
try{
out.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
相關文章
- linux-把終端輸出記錄到文字Linux
- 直播平臺開發,動態文字輸出,文字自動輸出
- 為什麼關閉一個緩衝區輸出流之前應使用flush方法?
- 002.08 文字輸出排版 PySimpleGUIGUI
- 最初,唯有時光記得
- 4-Windows程式設計 -文字輸出Windows程式設計
- php nginx 實時輸出PHPNginx
- JAVA筆記(12)——輸入和輸出Java筆記
- 使用ofstream輸出unicodeUnicode
- python怎樣實時輸出時間Python
- C語言學習日記(4)——輸出當前時間C語言
- wifi模組使用主控輸出的32k時鐘WiFi
- win10系統輸入文字時總是出現重複字元如何解決Win10字元
- python輸出時如何換行Python
- 《golang筆記》第三篇-輸入輸出Golang筆記
- JavaScript實時計算輸入文字框字元數量JavaScript字元
- 復旦等釋出AnyGPT:任意模態輸入輸出,影像、音樂、文字、語音都支援GPT
- 定時器-輸出比較PWM定時器
- 刪除表時碰到lms flush message acks等待事件事件
- C++ 學習筆記之——輸入和輸出C++筆記
- python 使用 loguru 輸出異常日誌同時列印變數值Python變數
- 使用Pandas DataFrame輸出報告
- 解析IO操作InputStream、OutputStream、InputStreamReader OutputStreamWriter、BufferedReader BufferedWriter
- [swift 進階]讀書筆記-第七章:字串 C7P8 文字輸出流Swift筆記字串
- 文字框輸入文字倒計詳解
- 多行文字溢位時出現省略號
- Python 輸出當前日期和時間Python
- 01_Numpy學習筆記(下):輸入和輸出筆記
- mysql關於FLUSH TABLES和FLUSH TABLES WITH READ LOCK的理解MySql
- JQuery設定文字框和密碼框獲得焦點時樣式jQuery密碼
- STM32系列程式碼引腳輸出上拉,測得輸出電壓太小,甚至只有0,輸出電壓太小,解決辦法
- 文字框文字輸入數量倒計效果
- 使用Markdown輸出LaTex數學公式公式
- 使用 C# 捕獲程式輸出C#
- 使用FOR XML AUTO控制XML輸出KHXML
- [20210902]cut使用輸出問題.txt
- Solidity語言學習筆記————24、輸入輸出引數Solid筆記
- GsonBuilder匯出null值、格式化輸出、日期時間UINull