gpt4 book ai didi

java - 在 Java 中使用 Class.getResourceAsStream() 的问题

转载 作者:搜寻专家 更新时间:2023-10-30 21:00:13 26 4
gpt4 key购买 nike

我有点卡在我正在处理的项目上,我想从另一个文件夹加载文本文件。我正在使用 Netbeans,为了解决这个问题,我有两个文件夹,一个是我的类(class),一个是资源。

该类在 ../misc/[ClassName] 中,我要加载的文本文件在 ../resources/[Name].txt>/p>

这听起来简单得令人难以置信,而且我已经使用 Java 一段时间了,我真的应该知道这一点,我认为加载此文件的最佳方法而不是仅使用 FileReader,是使用 getResourceAsStream ,如图:

InputStream is = 
this.getClass().getClassLoader().getResourceAsStream(_filename + ".txt");

理想情况下可以节省我的时间,而不必在文件路径中进行硬编码。现在,我的问题是我不断地从上面的代码中返回 null,实际上我可以对它进行任何其他排列。我试过 /resource/filename.txtresource/filename.txt 作为参数,使用 .getClass().getResourceAsStream 而不是getClassLoader(),一切仍然返回相同的结果。

为了避免混淆,我已经检查了文件名及其绝对正确的大小写等,所以这不是问题所在。有任何想法吗?我知道我可以只使用 FileReader 来实现相同的目标,但它现在是一种原则性的东西!

最佳答案

这个类显然是由一个完全不知道资源的不同类加载器加载的。而是使用从当前 Thread 获取的上下文的 ClassLoader。它什么都知道。

InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(_filename + ".txt");

关于java - 在 Java 中使用 Class.getResourceAsStream() 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2288530/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com