很像这个问题,我正在尝试更新一个TableViewin JavaFX。我采用了解决方案,使用DataFX.
我的代码:
File file = new File(path);
if(file.exists() && file.canRead()) {
DataSourceReader dsr1 = new FileSource(file);
String[] columnsArray = {"firstName", "lastName"};
CSVDataSource ds1 = new CSVDataSource(dsr1, columnsArray);
System.out.println("CSV : " + ds1.getData().size()); // outputs 0
//Below is commented out since I don't have data : source of the error
//tblAthleteList.setItems(ds1.getData());
//tblAthleteList.getColumns().addAll(ds1.getColumns());
}
这是我的测试.csv文件的视图:
firstName, lastName
first, last
test, tester
我正在使用JavaFX 2和DataFX 1.0构建e(fx)clipse
编辑
稍微更改了代码以使用FileSource(File f)构造函数来查看这是否会改变任何内容。原来我正在尝试从 CSVDataSource 打印一些东西,但我总是得到一个NullPointerException. 因此假设CSVDataSource没有得到任何数据。从示例中我可以发现这是正确完成的。我可以使用简单BufferedReader的循环读取文件。
编辑 2
编辑了问题...我现在指定错误在于没有数据被CSVDataSource从.csv文件中提取。该行ds1.getData().size()返回0。发布了一个.csv我正在使用的非常简单的文件。 EOL由CR+LF和编辑组成Notepad++(没有Excel多余的字符)。