1
7
我不确定一个通用的CSV阅读器会这么简单使用(顺便说一句,创建)。
无论如何,假设您想创建一个CSV读取器,其中所有列的类型都相同。正如您所说的,您不能参数化接受
在这里,您可以使用另一种方法:解析器,它接受您的字符串并返回正确类型的对象。创建泛型接口,并为要爬网的类型创建一些实现:
然后,你可以
有了这个解决方案,你就摆脱了你使用的不太漂亮的反射。你可以转换成任何类型,你只需要实现一个
现在,回到CSV文件可以有多种类型的问题上,只需稍微改进一下阅读器。您所需要的只是一个解析器列表(每列一个),而不是一个解析所有列的解析器。 希望有帮助:-) |
2
1
创建 对的 简历阅读器可能比你想象的要难。例如,在您的代码示例中,它在以下情况下无法正常工作。
不是4个字段,而是5个字段
我的建议是,使用第三方库实现。例如 http://opencsv.sourceforge.net/
|
3
1
如果你想做真正的工作,我建议你忘记这一点,使用 Scanner . 如果你在试验:我会把CsvReader变成一个抽象类:
它将被用作:
编辑 :事实证明,你可以随心所欲,尽管它看起来有点俗气。看到了吗 Super Type Tokens . 它基本上包括CsvReader中的Super-Type-Tokens链接中显示的逻辑,以使类对象与元素类相对应。 |
4
0
我需要读取存储在CSV文件单元格中的字符串的简单列表,然后开始搜索Java解决方案。我发现大多数开源CSV阅读器对于我来说都是不必要的复杂。(见 https://agiletribe.purplehillsbooks.com/2012/11/23/the-only-class-you-need-for-csv-files/ https://github.com/ramanraja/CsvReader |