- maven
<dependency>
<groupId>net.sourceforge.javacsv</groupId>
<artifactId>javacsv</artifactId>
<version>2.0</version>
</dependency>
- API
-
CsvWriter (写文件)
-
构造方法
参数 描述 String path, char deli, Charset charset 设置cvs输出路径,分隔符及字符集 String var1 设置cvs输出路径,默认分隔符"," 默认字符集 ISO-8859-1 Writer var1, char deli 设置字符流及分隔符 OutputStream out, char d, Charset set 设置输出流,分隔符及字符集 -
方法
方法 描述 setDelimiter(char var1) 设置分割符,可在构造方法中设置 setRecordDelimiter(char var1) 设置每行的定界符,默认为 换行符 \n setTextQualifier(char var1) 设置文本定界符,默认 双引号 " setUseTextQualifier(boolean var1) 默认为true,当每项中内含有定界符时,添加文本定界符 setEscapeMode(int var1) 默认为1,为2时,含有文本定界符的项做转义处理 setComment(char var1) 设置注解字符,默认为 井号 # setForceQualifier(boolean var1) 默认为false,为true时,每项都添加文本定界符 write(String var1, boolean var2) 在最后一行最后写入一项,var2为false时var1做trim处理 write(String var1) 在最后一行最后写入一项,var2为false writeComment(String var1) 写入注释,var1加注释符前缀 writeRecord(String[] v1, boolean v2) 在最后写入一行数据,v2为false时var1做trim处理 writeRecord(String[] v1) 在最后写入一行数据,v2为false endRecord() 换行 flush() 刷新流 close() 关闭流 replace(String v0, String vr1, String v2) 静态方法,v0中的vr1替换为v2
-
-
CsvReader (读文件)
-
构造方法
参数 描述 String var1, char var2, Charset var3 设置cvs文件路径,分隔符及编码集 String var1, char var2 设置cvs文件路径,分隔符,默认编码集为ISO-8859-1 String var1 设置cvs文件路径,默认分隔符逗号,默认编码集为ISO-8859-1 Reader var1, char var2 设置读取字符流及分割符 Reader var1 设置读取字符流,默认分割符 逗号 InputStream v1, char v2, Charset v3 设置输入流,分隔符及编码集 InputStream var1, Charset var2 设置输入流及编码集,默认分隔符 逗号 -
方法
方法 描述 readHeaders() 是否有当前一行(用于迭代) getHeaders() 获取当前行,返回数组(用于迭代) getHeader(int var1) 获取当前行索引处的值(用于迭代) getHeaderCount() 获取总行数(用于迭代) readRecord() 是否有当前一行记录(用于迭代) getRawRecord() 获取当前行记录,返回字符串(用于迭代) get(int var1) 获取当前行记录索引处的值(用于迭代) getColumnCount() 获取总行数(用于迭代) getCurrentRecord() 当前记录索引数 getValues() 获取当前行所有值 setUseComments(boolean var1) 默认为false,设置为true,不读取注解数据 setTrimWhitespace(boolean var1) 默认为true,设置为false,给字段值不进行trim处理 setComment(char var1) 设置cvs文件中的注释字符,默认为# setDelimiter(char var1) 设置分隔符,默认 , setRecordDelimiter(char var1) 设置每行记录分割符 ,默认为 换行符\n skipRecord() 跳过当前记录 close() 关闭
-
-
示例
- cvs文件写入
CsvWriter csvWriter=new CsvWriter("D:/demo/cvs/1599010631365_test.csv");
csvWriter.writeRecord(new String[]{"姓名","年龄"});//写入头信息
csvWriter.writeComment("注解");
csvWriter.writeRecord(new String[]{"zp","28"});//写入头信息
- cvs文件读取
CsvReader csvReader=new CsvReader("D:/demo/cvs/1599010631365_test.csv");
while (csvReader.readHeaders()){
String header = csvReader.getHeader(0);// 读第一列数据
String[] headers = csvReader.getHeaders();// 读一整行
int headerCount = csvReader.getHeaderCount();//总行数
System.out.println(headerCount);
}
while (csvReader.readRecord()){
int columnCount = csvReader.getColumnCount();//总行数
String rawRecord = csvReader.getRawRecord();//读取一行记录
String s = csvReader.get(0);//读取第一列
long currentRecord = csvReader.getCurrentRecord();//当前记录索引数
String[] values = csvReader.getValues();//获取当前行所有值
System.out.println(currentRecord);
}