string—线程“main”java.io.filenotfoundexception中的异常:java.iobufferedinputstream@73035e27 (系统找不到指定的文件)

bnl4lu3b  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(267)

**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

上个月关门了。
改进这个问题
我得从我的电脑上读一个外部文件 \\resource 文件格式为git。我必须使用资源文件夹,因为我与其他人共享项目,因此我们的培训数据文件路径将不同。我写道:

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”行。我非常感谢你的帮助。

bgtovc5b

bgtovc5b1#

事实上 trainingFile 不是inputstream和文件路径。您可以这样做:

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);
    }
u4dcyp6a

u4dcyp6a2#

Trainer.class.getClassLoader().getResourceAsStream("trainingData.txt").toString() 会给你一个类似的字符串 java.io.BufferedInputStream@7b1d7fff 这不是您应该传递给的参数 FileInputStream 需要路径名。
你可以通过考试 InputStreamInputStreamReader 简单地说:

InputStream trainingFile = Trainer.class.getClassLoader().getResourceAsStream("trainingData.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(trainingFile));

相关问题