无法从文件中读取数据

时间:2015-05-21 21:11:01

标签: java file

我正在尝试从包含com.example包中的CSV文件中读取值。 但是,当我使用以下语法运行代码时:

DataModel model = new FileDataModel(new File("Dataset.csv"));

它说:

  

java.io.FileNotFoundException:Dataset.csv

我也尝试过使用:

DataModel model = new FileDataModel(new File("/com/example/Dataset.csv"));

仍然无法正常工作。 任何帮助都会有所帮助。 感谢。

3 个答案:

答案 0 :(得分:0)

public class ReadCVS {

  public static void main(String[] args) {

    ReadCVS obj = new ReadCVS();
    obj.run();

  }

  public void run() {

    String csvFile = "file path of csv";
    BufferedReader br = null;
    String line = "";
    String cvsSplitBy = ",";

    try {

        br = new BufferedReader(new FileReader(csvFile));
        while ((line = br.readLine()) != null) {

                // Do stuff here

        }

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (br != null) {
            try {
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    System.out.println("Done");
  }

}

答案 1 :(得分:0)

  

com.example包中的CSV文件

您可以使用getResource()getResourceAsStream()从包中访问资源。例如

InputStream is = getClass().getResourceAsStream("/com/example/Dataset.csv");//uses absolute (package root) path
BufferedReader br = new BufferedReader(new InputStreamReader(is));
//read from BufferedReader

(注意,为简洁起见,上面省略了异常处理和文件关闭)

答案 2 :(得分:0)

如果这是来自FileDataModel的{​​{1}},则它无法获取输入流,只需要一个文件。问题是您无法轻易地将该文件提供给您(请参阅answer to this question)。

最好读取文件的内容并将其保存到临时文件,然后将该临时文件传递给org.apache.mahout.cf.taste.impl.model.file

FileDataModel