Java读取CSV文件
什么是CSV?
- Comma-Separated Values,逗号分隔值
- 跟数据库表很相似,一行即为数据表的一行,数据表字段用半角逗号隔开
- 用Excel和记事本都能打开
用excel打开CSV文件出现乱码
原因:简体中文环境下,EXCEL默认用ANSI编码打开CSV文件,而原本CSV文件的编码方式是utf-8,或Unicode等方式就会出现文件乱码的情况。
解决方法:1.用记事本打开AA.csv;2.另存为BB.csv,但是编码选择ANSI。
Java读取CSV文件
引入依赖
<dependency>
<groupId>net.sourceforge.javacsv</groupId>
<artifactId>javacsv</artifactId>
<version>2.0</version>
</dependency>
读取数据
public class ReadCSV {
public static char separator = ',';
public static List<Employee> readCSV(String filePath) {
CsvReader reader = null;
List<Employee> dataList = new ArrayList<>();
try {
//如果生产文件乱码,windows下用gbk,linux用UTF-8
reader = new CsvReader(filePath, separator, Charset.forName("UTF-8"));
// 读取表头
reader.readHeaders();
String[] headArray = reader.getHeaders();//获取标题
for (String head : headArray) {
System.out.print(head + "\t\t");
}
System.out.println();
// 逐条读取记录,直至读完
while (reader.readRecord()) {
Employee employee = new Employee();
employee.setId(reader.get(0));
employee.setName(reader.get(1));
employee.setMobile(reader.get(2));
employee.setDepartment(reader.get(3));
employee.setRoom(reader.get(4));
employee.setSex(reader.get(5));
dataList.add(employee);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != reader) {
reader.close();
}
}
return dataList;
}
}
参考博客:
https://www.cnblogs.com/onelikeone/p/7751506.html
https://www.cnblogs.com/wwwjie/p/8277242.html