Class FixedWidthReader
java.lang.Object
io.leandev.appfuse.csv.FixedWidthReader
- All Implemented Interfaces:
AutoCloseable
固定寬度文本讀取器
讀取固定寬度格式的文本檔案,每個欄位有預定義的字元寬度。
設計原則 此類別提供與 CsvReader 一致的 API,但處理固定寬度格式。 由於 Jackson CSV 不支援固定寬度,採用手動解析方式實作。
使用範例
try (InputStream is = new FileInputStream("report.txt");
FixedWidthReader reader = new FixedWidthReader(is, settings)) {
reader.readHeaders();
for (CsvRecord record = reader.read(); record != null; record = reader.read()) {
String code = record.getAsString("code").trim();
String name = record.getAsString("name").trim();
// 處理資料...
}
}
- Since:
- 1.0
-
Constructor Summary
ConstructorsConstructorDescriptionFixedWidthReader(InputStream inputStream, FixedWidthReaderSettings settings) 建構固定寬度讀取器(使用 UTF-8 編碼)FixedWidthReader(InputStream inputStream, FixedWidthReaderSettings settings, Charset charset) 建構固定寬度讀取器 -
Method Summary
-
Constructor Details
-
FixedWidthReader
public FixedWidthReader(InputStream inputStream, FixedWidthReaderSettings settings, Charset charset) 建構固定寬度讀取器- Parameters:
inputStream- 輸入串流settings- 讀取設定charset- 字元編碼
-
FixedWidthReader
建構固定寬度讀取器(使用 UTF-8 編碼)- Parameters:
inputStream- 輸入串流settings- 讀取設定
-
-
Method Details
-
readHeaders
讀取 Header 欄位 此方法會讀取第一行資料並設定為 Header。 呼叫後,後續的read()將從第二行開始讀取。- Returns:
- Header 欄位列表
- Throws:
IOException- 讀取失敗
-
read
讀取下一筆資料- Returns:
- 資料記錄,若已讀取完畢則回傳 null
- Throws:
IOException- 讀取失敗
-
readAll
-
stream
-
skip
跳過指定行數- Parameters:
offset- 要跳過的行數- Returns:
- 實際跳過的行數
- Throws:
IOException- 讀取失敗
-
close
- Specified by:
closein interfaceAutoCloseable- Throws:
IOException
-