Package org.miaixz.bus.office.csv
Class CsvBaseReader
java.lang.Object
org.miaixz.bus.office.csv.CsvBaseReader
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
CsvReader
CSV文件读取器基础类,提供灵活的文件、路径中的CSV读取,一次构造可多次调用读取不同数据,参考:FastCSV
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected CsvParser构建CsvParser读取CSV文件,默认UTF-8编码读取CSV文件从Reader中读取CSV数据,读取后关闭Reader<T> List<T> 从Reader中读取CSV数据并转换为Bean列表,读取后关闭Reader。voidread(Reader reader, boolean closeReader, org.miaixz.bus.core.center.function.ConsumerX<CsvRow> rowHandler) 从Reader中读取CSV数据,读取后关闭Reader<T> List<T> 从字符串中读取CSV数据并转换为Bean列表,读取后关闭Reader。读取CSV文件,默认UTF-8编码读取CSV文件readFromString(String csvStr) 从字符串中读取CSV数据voidreadFromString(String csvStr, org.miaixz.bus.core.center.function.ConsumerX<CsvRow> rowHandler) 从字符串中读取CSV数据readMapList(Reader reader, boolean closeReader) 从Reader中读取CSV数据,结果为Map,读取后关闭Reader。voidsetContainsHeader(boolean containsHeader) 设置是否首行做为标题行,默认falsevoidsetErrorOnDifferentFieldCount(boolean errorOnDifferentFieldCount) 设置每行字段个数不同时是否抛出异常,默认falsevoidsetFieldSeparator(char fieldSeparator) 设置字段分隔符,默认逗号','voidsetSkipEmptyRows(boolean skipEmptyRows) 设置是否跳过空白行,默认truevoidsetTextDelimiter(char textDelimiter) 设置 文本分隔符,文本包装符,默认双引号'"'
-
Field Details
-
DEFAULT_CHARSET
默认编码
-
-
Constructor Details
-
CsvBaseReader
public CsvBaseReader()构造,使用默认配置项 -
CsvBaseReader
构造- Parameters:
config- 配置项
-
-
Method Details
-
setFieldSeparator
public void setFieldSeparator(char fieldSeparator) 设置字段分隔符,默认逗号','- Parameters:
fieldSeparator- 字段分隔符,默认逗号','
-
setTextDelimiter
public void setTextDelimiter(char textDelimiter) 设置 文本分隔符,文本包装符,默认双引号'"'- Parameters:
textDelimiter- 文本分隔符,文本包装符,默认双引号'"'
-
setContainsHeader
public void setContainsHeader(boolean containsHeader) 设置是否首行做为标题行,默认false- Parameters:
containsHeader- 是否首行做为标题行,默认false
-
setSkipEmptyRows
public void setSkipEmptyRows(boolean skipEmptyRows) 设置是否跳过空白行,默认true- Parameters:
skipEmptyRows- 是否跳过空白行,默认true
-
setErrorOnDifferentFieldCount
public void setErrorOnDifferentFieldCount(boolean errorOnDifferentFieldCount) 设置每行字段个数不同时是否抛出异常,默认false- Parameters:
errorOnDifferentFieldCount- 每行字段个数不同时是否抛出异常,默认false
-
read
读取CSV文件,默认UTF-8编码- Parameters:
file- CSV文件- Returns:
CsvData,包含数据列表和行信息- Throws:
org.miaixz.bus.core.lang.exception.InternalException- IO异常
-
readFromString
从字符串中读取CSV数据- Parameters:
csvStr- CSV字符串- Returns:
CsvData,包含数据列表和行信息
-
readFromString
public void readFromString(String csvStr, org.miaixz.bus.core.center.function.ConsumerX<CsvRow> rowHandler) 从字符串中读取CSV数据- Parameters:
csvStr- CSV字符串rowHandler- 行处理器,用于一行一行的处理数据
-
read
public CsvData read(File file, Charset charset) throws org.miaixz.bus.core.lang.exception.InternalException 读取CSV文件- Parameters:
file- CSV文件charset- 文件编码,默认系统编码- Returns:
CsvData,包含数据列表和行信息- Throws:
org.miaixz.bus.core.lang.exception.InternalException- IO异常
-
read
读取CSV文件,默认UTF-8编码- Parameters:
path- CSV文件- Returns:
CsvData,包含数据列表和行信息- Throws:
org.miaixz.bus.core.lang.exception.InternalException- IO异常
-
read
public CsvData read(Path path, Charset charset) throws org.miaixz.bus.core.lang.exception.InternalException 读取CSV文件- Parameters:
path- CSV文件charset- 文件编码,默认系统编码- Returns:
CsvData,包含数据列表和行信息- Throws:
org.miaixz.bus.core.lang.exception.InternalException- IO异常
-
read
public CsvData read(Reader reader, boolean closeReader) throws org.miaixz.bus.core.lang.exception.InternalException 从Reader中读取CSV数据,读取后关闭Reader- Parameters:
reader- ReadercloseReader- 是否关闭Reader- Returns:
CsvData,包含数据列表和行信息- Throws:
org.miaixz.bus.core.lang.exception.InternalException- IO异常
-
readMapList
public List<Map<String,String>> readMapList(Reader reader, boolean closeReader) throws org.miaixz.bus.core.lang.exception.InternalException 从Reader中读取CSV数据,结果为Map,读取后关闭Reader。 此方法默认识别首行为标题行。- Parameters:
reader- ReadercloseReader- 是否关闭Reader- Returns:
CsvData,包含数据列表和行信息- Throws:
org.miaixz.bus.core.lang.exception.InternalException- IO异常
-
read
从Reader中读取CSV数据并转换为Bean列表,读取后关闭Reader。 此方法默认识别首行为标题行。- Type Parameters:
T- Bean类型- Parameters:
reader- ReadercloseReader- 是否关闭Readerclazz- Bean类型- Returns:
- Bean列表
-
read
从字符串中读取CSV数据并转换为Bean列表,读取后关闭Reader。 此方法默认识别首行为标题行。- Type Parameters:
T- Bean类型- Parameters:
csvStr- csv字符串clazz- Bean类型- Returns:
- Bean列表
-
read
public void read(Reader reader, boolean closeReader, org.miaixz.bus.core.center.function.ConsumerX<CsvRow> rowHandler) throws org.miaixz.bus.core.lang.exception.InternalException 从Reader中读取CSV数据,读取后关闭Reader- Parameters:
reader- ReadercloseReader- 是否关闭ReaderrowHandler- 行处理器,用于一行一行的处理数据- Throws:
org.miaixz.bus.core.lang.exception.InternalException- IO异常
-
parse
protected CsvParser parse(Reader reader) throws org.miaixz.bus.core.lang.exception.InternalException 构建CsvParser- Parameters:
reader- Reader- Returns:
- CsvParser
- Throws:
org.miaixz.bus.core.lang.exception.InternalException- IO异常
-