java - 用于读取 csv 并指定超过 1 个字符(字符串)“|%|”的自定义分隔符的 Java 库
问题描述
需要读取带有自定义字符串分隔符的 csv 文件,例如“|%|”。目前我正在使用 CSV 公共库,但它只允许按字符而不是字符串拆分。我更喜欢通过坚持使用 CSV 公共库进行拆分,但也对其他库开放。
解决方案
如果 CSV 文件使用不同的分隔符,而不是默认分隔符(即逗号),则可以轻松配置 CSVFormat 来处理它。假设文件用连字符分隔:
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import java.io.IOException;
import java.io.Reader;
import java.nio.file.Files;
import java.nio.file.Paths;
public class CSVReaderWithDifferentDelimiter {
public static void main(String[] args) throws IOException {
String csvFilePath = "../csvFileWithDiffDelimiter.csv";
Reader reader = Files.newBufferedReader(Paths.get(csvFilePath));
CSVFormat csvFormat = CSVFormat.newFormat('-')
.withFirstRecordAsHeader();
CSVParser csvParser = csvFormat.parse(reader);
csvParser.getRecords()
.forEach(csvRecord -> System.out.println(csvRecord.toMap()));
}
}
请注意,我们不再使用 DEFAULT CSVFormat,而是从头开始构建。我们将分隔符作为新的格式方法参数传递。其余配置,如记录分隔符、转义序列等将默认设置。
推荐阅读
- c# - 如何获取以 ^ 开头和结尾的单词
- flutter - 使用单独的背景颜色自定义颤振导航栏/标签栏
- php - 成功更新后`缺少必需参数:id`
- sql - 无法访问 azure sql 数据库中的临时表
- apache - 使用 mod_geoip2 基于 apache 2 服务器上的地理位置重定向 url
- python - 如何在 tkinter 中清除整个屏幕并在单击菜单栏项时获取新数据
- categories - 在 Google Datastudio 中创建计算字段
- amazon-web-services - 我正在尝试使用 Springboot 应用程序为 AWS MSK 创建一个生产者,能够从 EC2 客户端创建它(使用 kafka-console-producer.sh)
- powershell - 删除文本文件中的特定字符串
- python - 如何修复元组 Iindex 超出范围