Class CsvReader
java.lang.Object
io.leandev.appfuse.csv.CsvReader
- All Implemented Interfaces:
AutoCloseable
CSV 讀取器
基於 Jackson CSV 實作的 CSV 讀取器,提供多種讀取模式:
設計原則 此類別是依賴隔離層,內部使用 Jackson CSV 但不對外暴露其類型。 底層實作可替換而不影響應用層代碼。
使用範例
try (InputStream is = new FileInputStream("data.csv");
CsvReader reader = new CsvReader(is)) {
reader.readHeaders();
for (CsvRecord record = reader.read(); record != null; record = reader.read()) {
String username = record.getAsString("username");
Integer age = record.getAsInteger("age");
// 處理資料...
}
}
- Since:
- 1.0
-
Constructor Summary
ConstructorsConstructorDescriptionCsvReader(InputStream inputStream) 建構 CSV 讀取器(使用預設設定與 UTF-8 編碼)CsvReader(InputStream inputStream, CsvReaderSettings settings) 建構 CSV 讀取器(使用 UTF-8 編碼)CsvReader(InputStream inputStream, CsvReaderSettings settings, Charset charset) 建構 CSV 讀取器CsvReader(InputStream inputStream, Charset charset) 建構 CSV 讀取器(使用預設設定) -
Method Summary
-
Constructor Details
-
CsvReader
建構 CSV 讀取器- Parameters:
inputStream- 輸入串流settings- 讀取設定charset- 字元編碼
-
CsvReader
建構 CSV 讀取器(使用 UTF-8 編碼)- Parameters:
inputStream- 輸入串流settings- 讀取設定
-
CsvReader
建構 CSV 讀取器(使用預設設定)- Parameters:
inputStream- 輸入串流charset- 字元編碼
-
CsvReader
建構 CSV 讀取器(使用預設設定與 UTF-8 編碼)- Parameters:
inputStream- 輸入串流
-
-
Method Details
-
readHeaders
讀取 Header 欄位 此方法會讀取第一行資料並設定為 Header。 呼叫後,後續的read()將從第二行開始讀取。- Returns:
- Header 欄位列表
- Throws:
IOException- 讀取失敗
-
read
讀取下一筆資料- Returns:
- CSV 資料記錄,若已讀取完畢則回傳 null
- Throws:
IOException- 讀取失敗
-
readAll
-
stream
-
skip
跳過指定行數- Parameters:
offset- 要跳過的行數- Returns:
- 實際跳過的行數
- Throws:
IOException- 讀取失敗
-
close
- Specified by:
closein interfaceAutoCloseable- Throws:
IOException
-