java如何实现CSV文件导入与导出功能
CSV(Comma Separated Values,逗号分隔值)是一种表示表格数据的文件格式,通常用于将数据库中的表格数据导入到电子表格软件中,如Microsoft Excel、OpenOffice等。在java程序中,我们可以使用Apache Commons CSV库来实现CSV文件的导入和导出功能。
1.导入CSV文件
导入CSV文件通常涉及以下几个步骤:
(1)创建CSVParser对象:使用CSVParser类解析CSV文件。
(2)读取CSV文件:读取CSV文件中的数据行(包括表头和数据行)。
(3)处理CSV文件数据:对CSV文件中的数据行进行处理,将每一行数据转换为Java对象。
(4)关闭CSV文件:使用CSVParser对象的close()方法关闭CSV文件。
代码示例:
public static List<User> importCSV(String filePath) throws Exception {
List<User> userList = new ArrayList<>();
// 1. 创建CSVParser对象
CSVParser csvParser = CSVParser.parse(new File(filePath), Charset.forName("UTF-8"), CSVFormat.DEFAULT);
// 2. 读取CSV文件
List<CSVRecord> records = csvParser.getRecords();
// 3. 处理CSV文件数据
for (int i = 1; i < records.size(); i++) {
CSVRecord record = records.get(i);
String name = record.get(0);
String age = record.get(1);
String sex = record.get(2);
User user = new User(name, Integer.parseInt(age), sex);
userList.add(user);
}
// 4. 关闭CSV文件
csvParser.close();
return userList;
}
2.导出CSV文件
导出CSV文件通常涉及以下几个步骤:
(1)创建CSVPrinter对象:使用CSVPrinter类将数据输出到CSV文件。
(2)写入CSV文件表头:使用CSVPrinter对象的printRecord()方法写入CSV文件的表头。
(3)写入CSV文件数据:使用CSVPrinter对象的printRecord()方法写入CSV文件中的数据行。
(4)关闭CSV文件:使用CSVPrinter对象的close()方法关闭CSV文件。
代码示例:
public static void exportCSV(List<User> userList, String filePath) throws Exception {
// 1. 创建CSVPrinter对象
CSVPrinter csvPrinter = new CSVPrinter(new FileWriter(filePath), CSVFormat.DEFAULT);
// 2. 写入CSV文件表头
csvPrinter.printRecord("姓名", "年龄", "性别");
// 3. 写入CSV文件数据
for (User user : userList) {
List<String> record = new ArrayList<>();
record.add(user.getName());
record.add(String.valueOf(user.getAge()));
record.add(user.getSex());
csvPrinter.printRecord(record);
}
// 4. 关闭CSV文件
csvPrinter.close();
}
注意事项:
在使用Apache Commons CSV库时,需要引入以下依赖:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.7</version>
</dependency>
另外,在导入CSV文件时,需要注意CSV文件的编码格式,通常使用UTF-8编码。在导出CSV文件时,需要注意CSV文件中的数据行,每行数据需要用逗号分隔,且字符串数据需要用双引号括起来。如果CSV文件中的数据行有换行符,需要将该数据用双引号括起来,且在双引号内部的换行符需要用两个双引号代替。如下所示:
"数据1","数据2" "数据3","数据4 数据5","数据6" "数据7","数据8""数据9"""
以上是java如何实现CSV文件导入与导出功能的一些简单介绍。使用Apache Commons CSV库可以方便地实现CSV文件的导入和导出功能,同时需要注意CSV文件的编码格式和数据行格式。
