我正在尝试从包含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"));
仍然无法正常工作。 任何帮助都会有所帮助。 感谢。
答案 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