java - 处理 CSV 文件以映射使用 Java 8
问题描述
我想将一个 CSV 文件收集到一个映射中,其中映射键是行的第一个字符串(行 [0]),映射值是行的其余部分的字符串数组,不包括行 [0]。
.collect(Collectors.toMap(line ->line[0], ));
不确定输入什么作为 .toMap 方法的第二个参数来实现这一点
public Map<String,String[]> readFile() {
try {
Path path = Paths.get("src/CSV/map.csv");
BufferedReader reader = new BufferedReader(Files.newBufferedReader(path, Charset.forName("UTF-8")));
return reader.lines()
.map(line -> line.split(","))
.collect(Collectors.toMap(line ->line[0], ));
} catch (IOException e) {
throw new UncheckedIOException(e);
}
解决方案
或者使用这个:
.collect(Collectors
.toMap(line -> line[0], line-> Stream.of(line).skip(1).toArray(String[]::new)));
推荐阅读
- maven - 如何为我的 Google 函数覆盖 GOOGLE_ENTRYPOINT?
- yaml - 如何从具有用户级凭据的用户禁用 Web 部署 Azure 功能
- terminal - 从 http://localhost:9292/ 获取源索引
- android - 无法将 Android Studio 连接到 Pixel 2
- python - 从大型 XML 中提取标签到 csv
- snowflake-cloud-data-platform - 授予对 Snowflake 中特定未来表的访问权限
- shell - 如何在 shell 脚本中调用 Fastlane 动作或通道
- kubernetes - Kubernetes pod 中的 Azure 文件共享存储检查默认命名空间中的机密
- ios - IOS - angular 12 PWA 双刷问题
- reactjs - 我想在按下 react esc 时关闭模式