我正在尝试使用eclipse在java类中实现csv读取器。我不断得到一个关于add方法的错误“add(person)in the type list is not applicable for the arguments(string[])。我做错什么了?
public static List<Person> readPersons(String fileName)
throws FileNotFoundException {
int count = 0;
List<Person[]> content = new ArrayList<>();
try(BufferedReader cv = new BufferedReader(new FileReader(fileName))){
String line = "";
while ((line = cv.readLine()) != null) {
content.add(line.split(","));
}
} catch (FileNotFoundException e) {
}
return content;
}
另外,如何实现这个filenotfoundexception扩展程序?在程序中是必需的。
2条答案
按热度按时间dzjeubhm1#
贝塔的回答是正确的。
我想指出的是,对于阅读csv,您可能需要考虑在代码中使用现有的解决方案,例如:
apache commons csv
Jacksoncsvmapper
示例代码
这些库将有助于带引号/不带引号的列以及将值转换为正确的数据类型。
ppcbkaq52#
这个
line.split( "," )
方法将返回字符串数组。它所做的是:原始字符串
line
被拆分为字符串数组。在该数组中,每个字符串都是line
用逗号分隔。例如,如果
line
是"Peter,Smith,38"
,将返回以下字符串数组:[ "Peter", "Smith", "38" ]
.但是,由于您的列表只能包含
Person
,它不能接受String[]
返回的数组line.split( "," )
.假设你有一个
Person
看起来是这样的:Person( String firstName, String secondName, int age )
您必须将while循环更改为以下内容: