核心代碼
BufferedWriter out = null;
try {
// true 表示追加模式
out = new BufferedWriter(new FileWriter("filename", true));
out.write("aString");
} catch (IOException e) {
// 錯誤處理:記錄日誌、拋出業務異常等
} finally {
if (out != null) {
try { out.close(); } catch (IOException ignored) {}
}
}
關鍵點解析
FileWriter(String fileName, boolean append):第二個參數 true 開啟追加模式,false 覆蓋模式
BufferedWriter:提供緩衝區,減少系統調用,提升寫入性能
finally 確保資源釋放,防止文件句柄洩漏
- JDK 7+ 推薦使用 try-with-resources 自動關閉:
現代寫法
try (BufferedWriter writer = new BufferedWriter(new FileWriter("filename", true))) {
writer.write("aString");
writer.newLine(); // 可選:換行
} catch (IOException e) {
log.error("文件追加寫入失敗", e);
}
性能建議
- 批量寫入:累積內容一次性
write,或使用 PrintWriter 便利方法
- 大文件:考慮
FileChannel + MappedByteBuffer 內存映射
- 並發寫入:需外部鎖或單寫入線程隊列化