gpt4 book ai didi

java - 如何使用 Jackson Library、JSON 在 java 中读取 CSV 文件

转载 作者:行者123 更新时间:2023-12-02 12:05:20 25 4
gpt4 key购买 nike

如何使用 Jackson 库从 java 中的路径读取 CSV 文件。并解析使用 CsvSchemaObjectReaderCsvMapper。然后使用 Jackson 库将其转换为 JSON 对象。请帮忙。

private void testCsvRead() throws Exception 
{
String FILE_NAME = "G://Read folder/output.csv";
System.out.println("read csv");

ClassLoader classLoader = getClass().getClassLoader();

//-------------*****I am getting error here*****------------///

File file = new File(classLoader.getResource(FILE_NAME).getFile());

<-------------**********------------/
CsvSchema schema = CsvSchema.builder().addColumn("parentCategoryCode").addColumn("code").addColumn("name").addColumn("description").build();
CsvMapper mapper = new CsvMapper();


ObjectReader oReader = mapper.readerFor(OfferTemplateCategory.class).with(schema);


try (Reader reader = new FileReader(file)) {
MappingIterator mi = oReader.readValues(reader);

while (mi.hasNext())
{
System.out.println(mi.next());
}

}
}

我在这一行遇到错误(见上文)

File file = new File(classLoader.getResource(FILE_NAME).getFile());

这是错误--->

java.lang.NullPointerException
at CSVtester.CsvTest.testCsvRead(CsvTest.java:39)
at CSVtester.CsvTest.main(CsvTest.java:26)

最佳答案

这里可能的问题是classLoader.getResource(FILE_NAME)返回null

由于您使用文件的绝对路径,您可能希望简化代码并简单地使用:

File file = new File("G://Read folder/output.csv");

您可以通过在 File 对象上调用 exists() 来验证文件是否存在。

注意

这是API对于 Classloader#getResource,以及在您的情况下为什么它是 null 的可能解释。

关于java - 如何使用 Jackson Library、JSON 在 java 中读取 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46939994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com