java – 无法使用getResourceAsStream读取文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 无法使用getResourceAsStream读取文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1797字,纯文字阅读大概需要3分钟。
内容图文
![java – 无法使用getResourceAsStream读取文件](/upload/InfoBanner/zyjiaocheng/733/642268a2cfc44c178720ca901e65ca17.jpg)
我有一个文件夹结构
项目
> src
> –TestMain.java
> bin
> –TestMain.class
>资源
> –test.txt
由于整个项目将被打包到一个jar文件中,我必须使用getResourceAsStream从资源中读取一个文件.虽然我已经阅读了有关getResourceAsStream的所有问题,但我仍然无法使其正常工作.有人可以帮忙吗?谢谢!
public class TestMain {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
InputStream stream = TestMain.class.getResourceAsStream("\resources\test.txt");
System.out.println(stream);
BufferedReader bufRead = new BufferedReader(new InputStreamReader(stream));
StringBuilder builder = new StringBuilder();
String line=null;
while((line=bufRead.readLine())!=null){
builder.append(line).append("\n");
}
System.out.println(builder.toString());
}
}
解决方法:
基本上,有两种不同的方法:ClassLoader.getResourceAsStream()和Class.getResourceAsStream().这两种方法将以不同方式定位资源.
在Class.getResourceAsStream(path)中,路径被解释为您调用它的类的包的本地路径.例如,调用String.getResourceAsStream(“file.txt”)将在类路径中的以下位置查找文件:“java / lang / file.txt”.如果您的路径以/开头,那么它将被视为绝对路径,并将从类路径的根开始搜索.因此,调用String.getResourceAsStream(“/ myfile.txt”)将查看类路径./file.txt中的以下位置.
ClassLoader.getResourceAsStream(path)将所有路径视为绝对路径.因此,调用String.getClassLoader().getResourceAsString(“myfile.txt”)和String.getClassLoader().getResourceAsString(“/ file.txt”)将在以下位置的类路径中查找文件:./ file.文本.
每次定位时,它可能是文件系统本身的位置,也可能是相应jar文件中的位置,具体取决于您从中加载资源的Class和/或ClassLoader.
如果从Application Server加载类,那么应该使用Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName)而不是this.getClass().getClassLoader().getResourceAsStream(fileName). this.getClass().getResourceAsStream()也可以工作.
内容总结
以上是互联网集市为您收集整理的java – 无法使用getResourceAsStream读取文件全部内容,希望文章能够帮你解决java – 无法使用getResourceAsStream读取文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。