Class FixedWidthWriter
java.lang.Object
io.leandev.appfuse.csv.FixedWidthWriter
- All Implemented Interfaces:
AutoCloseable
固定寬度文本寫入器
寫入固定寬度格式的文本檔案,每個欄位有預定義的字元寬度。
設計原則
此類別提供與 CsvWriter 一致的 API,但產生固定寬度格式。 由於 Jackson CSV 不支援固定寬度,採用手動格式化方式實作。
使用範例
try (OutputStream os = new FileOutputStream("output.txt");
FixedWidthWriter writer = new FixedWidthWriter(os, settings)) {
writer.writeHeaders("code", "name", "price");
for (Product product : products) {
writer.write(product); // 自動提取屬性
}
}
- Since:
- 1.0
-
Constructor Summary
ConstructorsConstructorDescriptionFixedWidthWriter(OutputStream outputStream, FixedWidthWriterSettings settings) 建構固定寬度寫入器(使用 UTF-8 編碼)FixedWidthWriter(OutputStream outputStream, FixedWidthWriterSettings settings, Charset charset) 建構固定寬度寫入器 -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()voidflush()強制寫入緩衝區取得當前 Header 欄位voidsetHeaders(String... headers) 設定 Header 欄位(不寫入檔案)voidsetHeaders(List<String> headers) 設定 Header 欄位(不寫入檔案)void寫入一筆資料(物件格式)void寫入一筆資料(List 格式)voidwriteHeaders(String... headers) 寫入 Header 欄位voidwriteHeaders(List<String> headers) 寫入 Header 欄位
-
Constructor Details
-
FixedWidthWriter
public FixedWidthWriter(OutputStream outputStream, FixedWidthWriterSettings settings, Charset charset) 建構固定寬度寫入器- Parameters:
outputStream- 輸出串流settings- 寫入設定charset- 字元編碼
-
FixedWidthWriter
建構固定寬度寫入器(使用 UTF-8 編碼)- Parameters:
outputStream- 輸出串流settings- 寫入設定
-
-
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
-