我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等)。在单独运行的时候这些简单的处理当然不会有问题。但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了。看看下面的代码:

 1 //源代码1:
 2  3 import java.io.*;
 4 public class Resource {
 5     public  void getResource() throws IOException{
 6         File file=new File("bin/resource/res.txt");
 7         BufferedReader br=new BufferedReader(new FileReader(file));
 8         String s="";
 9         while((s=br.readLine())!=null)
10             System.out.println(s);
11     }
12 }    

显然,单独运行这段代码能够正确指定资源中的内容,但是将该工程连同资源一起打包为JAR包之后,在另一个工程下使用,却不能正常运行了,会报FileNotFoundException

为解决此问题,可采用如下方法,通过Class类的getResourceAsStream()方法来获取指定资源,这种方法是如何读取jar中的资源文件的,这一点对于我们来说是透明的:

 1 //源代码3:
 2 package edu.hxraid;
 3 import java.io.*;
 4 public class Resource {
 5     public void getResource() throws IOException{
 6         //返回读取指定资源的输入流
 7         InputStream is=this.getClass().getResourceAsStream("/resource/res.txt");
 8         BufferedReader br=new BufferedReader(new InputStreamReader(is));
 9         String s="";
10         while((s=br.readLine())!=null)
11             System.out.println(s);
12     }
13 }

这样,将该工程打包成JAR包之后,依旧能够正常工作。

转载于:https://www.cnblogs.com/ustc-anmin/p/10123383.html

JAR包中读取资源文件相关推荐

  1. 从jar包中读取资源文件

    :[解惑]深入jar包:从jar包中读取资源文件 精华帖 (3) :: 良好帖 (15) :: 新手帖 (9) :: 隐藏帖 (0) 作者 正文 Heart.X.Raid 等级: 性别: 文章: 72 ...

  2. java 如何读取jar包内资源文件_【解惑】深入jar包:从jar包中读取资源文件

    我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看 ...

  3. java jar包资源文件_深入jar包:从jar包中读取资源文件

    我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看 ...

  4. [Java基础] 深入jar包:从jar包中读取资源文件

    转载: http://hxraid.iteye.com/blog/483115?page=3#comments 我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的 ...

  5. 深入jar包:从jar包中读取资源文件

    我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看 ...

  6. java读取同包文件_Java实现从jar包中读取指定文件的方法

    本文实例讲述了Java实现从jar包中读取指定文件的方法.分享给大家供大家参考,具体如下: 以下的Java代码实现了从一个jar包中读取指定文件的功能: /** * This class implem ...

  7. java从jar包中拷贝资源文件到临时文件夹

    具体方法: /*** 拷贝资源问件** @param path*/public static void extract(String path) {try {//创建临时文件夹File tempDir ...

  8. 使用FileInputStream读取jar包中的资源文件

    1.问题现象:项目打成jar包后,使用ResourceUtils.getFile(keystoreFile)无法访问到资源文件 //classpath为resources目录下 String test ...

  9. 获取jar包内部的资源文件

    通常获取一个资源文件很简单,问题是对于jar包内的资源文件,可能会发生意外.假如这里有一个文件操作的类: public class FileLoader {public boolean exists( ...

最新文章

  1. 快速提升UI设计感的7个版式小妙招
  2. body添加代码 js_hexo 博客添加评论和阅读量
  3. Altium Designer -- PCB布局与布线
  4. java基础进阶(文件列表,线程,线程组)编程实例(4篇)
  5. Adobe AIR for Android 缓存本地数据常用方法
  6. 10)Thymeleaf 标记选择器语法
  7. 3807. 构造字符串——AcWing题库
  8. python实验九答案_Python程序设计实验报告:实验九 python 包管理
  9. java毕业设计开题报告论文基于JavaWeb项目实现的高校学生在线选课系统
  10. BOM详解(整个BOM架构体系)
  11. spss相关分析(spss统计分析实验教程,谢蕾蕾)
  12. 根据单词列表通过网络下载单词发音
  13. html js创建表格,javascript创建表格方式详解
  14. php怎么分栏,word文档怎么设置分栏格式
  15. php百度网盘登录,php登陆状态百度网盘获取文件下载链接【思路|部分代码】
  16. STM32 IO口模拟ISO7816(PSAM卡)协议
  17. 让美容院业绩翻番,您只差一套软多共享股东系统
  18. MYSQL互为主从部署(Censo:6)
  19. exit()和_exit()两个函数的区别
  20. [转]字典学习/稀疏编码

热门文章

  1. java 将base64字符串转换成图片
  2. CSS text-decoration 属性
  3. Nginx 500错误总结
  4. @PropertySource读取properties属性 中文乱码问题
  5. 工作中常用到的ES6语法
  6. local.properties 文件读取
  7. JS调用模式以及bind()方法
  8. 《万物互联》——2.3 理解智能设备
  9. 概率霍夫变换(Progressive Probabilistic Hough Transform)原理详解
  10. UITableViewController 滚动引起的cocos2d动画暂停问题的解决