一个临时的任务,需要把一个有几百万条记录的 CSV 文件分割成多个小一点的文件,没找到合适的分割工具,就花了一点时间研究了 CSV 文件的读写操作。成果如下:
CsvReader 读取
public static ArrayList<String> readCsvByCsvReader(String filePath) {
ArrayList<String> strList = null;
try {
ArrayList<String[]> arrList = new ArrayList<String[]>();
strList = new ArrayList<String>();
CsvReader reader = new CsvReader(filePath, ',', Charset.forName("GBK"));
// reader.readHeaders(); // 跳过表头,要读表头则注释掉
while (reader.readRecord()) {
System.out.println(Arrays.asList(reader.getValues()));
arrList.add(reader.getValues()); // 按行读取,并把每一行的数据添加到list集合
}
reader.close();
System.out.println("读取的行数:" + arrList.size());
// 如果要返回 String[] 类型的 list 集合,则直接返回 arrList
// 以下步骤是把 String[] 类型的 list 集合转化为 String 类型的 list 集合
for (int row = 0; row < arrList.size(); row++) {
// 组装String字符串
// 如果不知道有多少列,则可再加一个循环
String ele = arrList.get(row)[0] + "," + arrList.get(row)[1] + ","
+ arrList.get(row)[2] + "," + arrList.get(row)[3] ;
/

本文介绍了如何使用CsvReader和CsvWriter进行CSV文件的读写操作,包括处理中文乱码问题,以及利用BufferedReader和BufferedWriter进行文件读写。在分割大型CSV文件时,需要注意分隔符和编码方式,确保数据正确性。
最低0.47元/天 解锁文章
1813

被折叠的 条评论
为什么被折叠?



