Class CsvWriter
java.lang.Object
io.leandev.appfuse.csv.CsvWriter
- All Implemented Interfaces:
AutoCloseable
CSV 寫入器
基於 Jackson CSV 實作的 CSV 寫入器,支援:
- 寫入 List 資料:
write(List) - 寫入物件資料:
write(Object) - 自動序列化:根據 Header 自動提取物件屬性
設計原則 此類別是依賴隔離層,內部使用 Jackson CSV 但不對外暴露其類型。 底層實作可替換而不影響應用層代碼。
使用範例
try (OutputStream os = new FileOutputStream("output.csv");
CsvWriter writer = new CsvWriter(os)) {
writer.writeHeaders("id", "name", "price");
for (Product product : products) {
writer.write(product); // 自動提取屬性
}
}
- Since:
- 1.0
-
Constructor Summary
ConstructorsConstructorDescriptionCsvWriter(OutputStream outputStream) 建構 CSV 寫入器(使用預設設定與 UTF-8 編碼)CsvWriter(OutputStream outputStream, CsvWriterSettings settings) 建構 CSV 寫入器(使用 UTF-8 編碼)CsvWriter(OutputStream outputStream, CsvWriterSettings settings, Charset charset) 建構 CSV 寫入器CsvWriter(OutputStream outputStream, Charset charset) 建構 CSV 寫入器(使用預設設定) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()voidflush()強制寫入緩衝區取得當前 Header 欄位voidsetHeaders(String... headers) 設定 Header 欄位(不寫入檔案)voidsetHeaders(List<String> headers) 設定 Header 欄位(不寫入檔案) 注意:此方法會建立新的 List,而非累加。void寫入一筆資料(物件格式) 自動使用 PropertyMap 提取物件屬性,並根據 Header 順序寫入。void寫入一筆資料(List 格式)voidwriteHeaders(String... headers) 寫入 Header 欄位 此方法會設定 Header 並寫入第一行。voidwriteHeaders(List<String> headers) 寫入 Header 欄位 此方法會設定 Header 並寫入第一行。
-
Constructor Details
-
CsvWriter
建構 CSV 寫入器- Parameters:
outputStream- 輸出串流settings- 寫入設定charset- 字元編碼
-
CsvWriter
建構 CSV 寫入器(使用 UTF-8 編碼)- Parameters:
outputStream- 輸出串流settings- 寫入設定
-
CsvWriter
建構 CSV 寫入器(使用預設設定)- Parameters:
outputStream- 輸出串流charset- 字元編碼
-
CsvWriter
建構 CSV 寫入器(使用預設設定與 UTF-8 編碼)- Parameters:
outputStream- 輸出串流
-
-
Method Details
-
writeHeaders
寫入 Header 欄位 此方法會設定 Header 並寫入第一行。- Parameters:
headers- Header 欄位陣列- Throws:
IOException- 寫入失敗
-
writeHeaders
寫入 Header 欄位 此方法會設定 Header 並寫入第一行。- Parameters:
headers- Header 欄位列表- Throws:
IOException- 寫入失敗
-
setHeaders
-
setHeaders
-
getHeaders
-
write
寫入一筆資料(List 格式)- Parameters:
dataRow- 資料列表- Throws:
IOException- 寫入失敗
-
write
寫入一筆資料(物件格式) 自動使用 PropertyMap 提取物件屬性,並根據 Header 順序寫入。- Parameters:
data- 物件資料- Throws:
IOException- 寫入失敗
-
flush
-
close
- Specified by:
closein interfaceAutoCloseable- Throws:
Exception
-