我有一个更大的 csv 文件,大约有 80K 到 120K 行(取决于日期)。我成功运行了使用注释将整个 csv 文件解析为 java 对象的代码@CsvBindByName。示例代码:
Reader reader = Files.newBufferedReader(Paths.get(file));
CsvToBean csvToBean = new CsvToBeanBuilder<Object>(reader)
.withType(MyCustomClass.class)
.withIgnoreLeadingWhiteSpace(true)
.build();
List<MyCustomClass> myCustomClass= csvToBean.parse();`
Run Code Online (Sandbox Code Playgroud)
我想更改此代码以逐行解析 csv 文件而不是整个文件,但保留映射到 java bean 对象的整洁性。本质上是这样的:
CSVReader csvReader = new CSVReader(Files.newBufferedReader(Paths.get(csvFileLoc)));
String[] headerRow = csvReader.readNext(); // save the headerRow
String [] nextLine = null;
MyCustomClass myCustomClass = new MyCustomClass();
while ((nextLine = csvReader.readNext())!=null) {
myCustomClass.setField1(nextLine[0]);
myCustomClass.setField2(nextLine[1]);
//.... so on
}
Run Code Online (Sandbox Code Playgroud)
但上述解决方案使我必须了解每个字段的列位置。我想要的是根据标题行映射从 csv 获取的字符串数组,类似于 opencsv 在解析整个 csv 文件时所做的操作。但是,据我所知,我无法使用 opencsv 来做到这一点。我原以为这将是一种非常常见的做法,但我无法在网上找到任何对此的参考。可能是我没有CsvToBean正确理解 opencsv …
我正试图将我的谷歌日历中的事件拉到列表视图中(最有可能).我能够访问.ics文件但是当我在文本编辑器中打开文件时,我看到了UID CREATED LASTMODIFIED很多其他标签.事件的描述并不真实可见,并且与标签相对应的信息DTSTART不可读.我想知道我要阅读/做些什么来进一步了解它以便我能理解它?还有一个链接或东西,我可以理解这些标签的意思 - 现在它几乎猜测工作?