线程"main"java.io.FileNotFoundException异常:java.io.BufferedInputStream@73035e27(系统找不到指定的文件)
Exception in thread "main" java.io.FileNotFoundException: java.io.BufferedInputStream@73035e27 (The system cannot find the file specified)
我必须从 git 中的 \resource
文件中读取外部文件。我必须使用资源文件夹,因为我要与其他人共享项目,所以我们的 trainingData 文件路径会有所不同。我写道:
public static String trainingFile = Trainer.class.getClassLoader().getResourceAsStream("trainingData.txt").toString();
然后trainingFile
要看,我写了:
FileInputStream fstream = new FileInputStream(trainingFile);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
while ((strLine = br.readLine()) != null)
{
fileNames.add(strLine);
}
当我 运行 这给了我错误:
Exception in thread "main" java.io.FileNotFoundException: java.io.BufferedInputStream@73035e27 (The system cannot find the file specified)
到“FileInputStream fstream”行。
非常感谢您的帮助。
实际上 trainingFile
不是输入流和文件路径。你可以这样做:
InputStream trainingFile = Trainer.class.getClassLoader().getResourceAsStream("trainingData.txt");
List<String> fileNames = new ArrayList<String>();
BufferedReader br = new BufferedReader(new InputStreamReader(trainingFile));
String strLine;
while ((strLine = br.readLine()) != null)
{
fileNames.add(strLine);
System.out.println(strLine);
}
Trainer.class.getClassLoader().getResourceAsStream("trainingData.txt").toString()
会给你 return 一个类似 java.io.BufferedInputStream@7b1d7fff
的字符串,它不是你应该传递给 FileInputStream
的参数,它需要路径名。
您可以简单地将 InputStream
传递给 InputStreamReader
:
InputStream trainingFile = Trainer.class.getClassLoader().getResourceAsStream("trainingData.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(trainingFile));
我必须从 git 中的 \resource
文件中读取外部文件。我必须使用资源文件夹,因为我要与其他人共享项目,所以我们的 trainingData 文件路径会有所不同。我写道:
public static String trainingFile = Trainer.class.getClassLoader().getResourceAsStream("trainingData.txt").toString();
然后trainingFile
要看,我写了:
FileInputStream fstream = new FileInputStream(trainingFile);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
while ((strLine = br.readLine()) != null)
{
fileNames.add(strLine);
}
当我 运行 这给了我错误:
Exception in thread "main" java.io.FileNotFoundException: java.io.BufferedInputStream@73035e27 (The system cannot find the file specified)
到“FileInputStream fstream”行。
非常感谢您的帮助。
实际上 trainingFile
不是输入流和文件路径。你可以这样做:
InputStream trainingFile = Trainer.class.getClassLoader().getResourceAsStream("trainingData.txt");
List<String> fileNames = new ArrayList<String>();
BufferedReader br = new BufferedReader(new InputStreamReader(trainingFile));
String strLine;
while ((strLine = br.readLine()) != null)
{
fileNames.add(strLine);
System.out.println(strLine);
}
Trainer.class.getClassLoader().getResourceAsStream("trainingData.txt").toString()
会给你 return 一个类似 java.io.BufferedInputStream@7b1d7fff
的字符串,它不是你应该传递给 FileInputStream
的参数,它需要路径名。
您可以简单地将 InputStream
传递给 InputStreamReader
:
InputStream trainingFile = Trainer.class.getClassLoader().getResourceAsStream("trainingData.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(trainingFile));