"Exception in thread "main" java.lang.NullPointerException" - CSV 到 Arff

"Exception in thread "main" java.lang.NullPointerException" - CSV to Arff

我正尝试按照本指南将 CSV 文件转换为 Arff 格式。 (下图link)

这是为了练习目的,我只是想知道在构建更大的数据集之前如何正确转换它。

CSV 文件

Name,points,rebounds,steals,assists
Lebron James,17,10,1,7
Lebron James,29,5,2,8
Lebron James,30,4,0,8
Lebron James,24,4,1,3
Lebron James,25,1,0,11
Lebron James,22,4,2,9
Lebron James,21,3,2,2
Lebron James,27,7,1,14
Lebron James,41,5,0,5
Lebron James,35,2,2,2
Lebron James,18,4,3,4

Java 文件 - 关闭本站教程 Weka Turorial

import weka.core.Instances;
import weka.core.converters.CSVLoader;
import weka.core.converters.ArffSaver;

import java.io.File;

public class arffBBALL{
    public static void main(String[] args) throws Exception{



        //load CSV
        CSVLoader loader = new CSVLoader();
        loader.setSource(new File("Users/myname/Desktop/bball.csv"));
        Instances data = loader.getDataSet();


        //save ARFF
        ArffSaver saver = new ArffSaver();
        saver.setInstances(data); // set the dataset we want to convert
        // save as ARFF
        saver.setFile(new File("Users/myname/Desktop/nbball.arff"));
        saver.writeBatch();
    }
}

这是我在 Java

中遇到的错误
Exception in thread "main" java.lang.NullPointerException
    at java.io.StreamTokenizer.<init>(StreamTokenizer.java:248)
    at weka.core.converters.CSVLoader.getStructure(CSVLoader.java:593)
    at weka.core.converters.CSVLoader.getDataSet(CSVLoader.java:628)
    at arffBBALL.main(arffBBALL.java:15)

我将 Weka.jar 文件加载到引用的库中,但我似乎无法将 CSV 文件转换为 arff。

我的 Mac 桌面上有 CSV 文件。

如有任何帮助,我们将不胜感激。谢谢

编辑:添加绝对路径后的最新错误:

---Registering Weka Editors---
Trying to add database driver (JDBC): jdbc.idbDriver - Error, not in CLASSPATH?
Exception in thread "main" java.io.IOException: wrong number of values. Read 2, expected 1, read Token[EOL], line 4
    at weka.core.converters.ConverterUtils.errms(ConverterUtils.java:912)
    at weka.core.converters.CSVLoader.getInstance(CSVLoader.java:824)
    at weka.core.converters.CSVLoader.getDataSet(CSVLoader.java:646)
    at arffBBALL.main(arffBBALL.java:15)

用这个函数测试看看是不是文件的问题.. http://docs.oracle.com/javase/7/docs/api/java/io/File.html#exists() http://docs.oracle.com/javase/7/docs/api/java/io/File.html#canRead()

您的文件似乎有问题。尝试检查路径..