0

很像这个问题,我正在尝试更新一个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 2DataFX 1.0构建e(fx)clipse

编辑

稍微更改了代码以使用FileSource(File f)构造函数来查看这是否会改变任何内容。原来我正在尝试从 CSVDataSource 打印一些东西,但我总是得到一个NullPointerException. 因此假设CSVDataSource没有得到任何数据。从示例中我可以发现这是正确完成的。我可以使用简单BufferedReader的循环读取文件。

编辑 2

编辑了问题...我现在指定错误在于没有数据被CSVDataSource.csv文件中提取。该行ds1.getData().size()返回0。发布了一个.csv我正在使用的非常简单的文件。 EOLCR+LF和编辑组成Notepad++(没有Excel多余的字符)。

4

1 回答 1

1

确保列名columnsArray与 CSV 文件中的列名完全相同(区分大小写)。

当我将列名year放在代码中但在我的 csv 文件中时,我得到了类似的异常Year

根据问题中的编辑更新:

删除文件之间,lastName文件中的空格或" lastName"作为列名放在代码中:)

于 2013-01-18T15:13:25.360 回答