我正在尝试测试来自微笑项目(https://github.com/haifengl/smile)的一些数据挖掘算法。测试过程很简单(我已经将其包含在Smile项目的现有Eclipse项目的Maven存储库中),但是通过以下代码,我使用InputStream捕获了NPE(空指针异常),该文件只是需要读取的重载csv文件(包括在同一项目文件夹中)

package com.algorithms;

import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;

import smile.data.AttributeDataset;
import smile.data.NominalAttribute;
import smile.data.parser.DelimitedTextParser;

public class DenclueTester {
    public void doTestDenclue() throws IOException, ParseException
    {
        DelimitedTextParser parser = new DelimitedTextParser();
        parser.setResponseIndex(new NominalAttribute("class"), 0);
        InputStream in =  this.getClass().getResourceAsStream("USCensus1990_data1.csv");
        AttributeDataset data = parser.parse("US Census data", in);
        double[][] x = data.toArray(new double[data.size()][]);
        int[] y = data.toArray(new int[data.size()]);

    }
    public DenclueTester() {}   //constructor
}


以下代码在main中执行:

public class Dtest
{
    public static void main(String[] args) throws IOException, ParseException
    {
        DenclueTester dt = new DenclueTester();
        dt.doTestDenclue();
    }
}


堆栈跟踪:

Exception in thread "main" java.lang.NullPointerException
    at java.io.Reader.<init>(Unknown Source)
    at java.io.InputStreamReader.<init>(Unknown Source)
    at smile.data.parser.DelimitedTextParser.parse(DelimitedTextParser.java:234)
    at com.algorithms.DenclueTester.doTestDenclue(DenclueTester.java:18)
    at com.algorithms.Dtest.main(Dtest.java:26)


有人可以帮我吗?

最佳答案

通过将csv文件放入/ classes / package_name文件夹来解决问题。谢谢

09-15 16:47