问题描述:
一般情况下我们希望将一些固定的资源文件通过eclipse一起导出到一个jar包中。例如以下的一个工程资源布局:
此工程到处以后红色部分是不会导入到jar包里面的,而绿色部分是可以导入到jar包里的。
那么利用资源时在代码中使用相对路径比如读红色部分file中的文件使用 String path = “file/”; 是没有问题的。但是打成jar包后你必须在jar包所存放的目录新建一个file目录里面放一个文件。是很麻烦的。
那么如何获得绿色部分的的文件流呢?你可以在工程的测试中使用相对路径 比如 Stringpath = “src/file/txt/ 这样也是没问题的,可是遗憾的是在工程打成jar包以后src目录就不见了。而这个路径也是错误的。
所以最好的方法是利用java提供的方法获得流。
BufferedReader br = new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream("/file/txt/")));
And also! you can use it the way showing below:
Image i = (.getResourceAsStream("/lib/"));
注意的是,路径的开头的 / 是不能少的,它代表的就是从src目录-根目录,而资源文件路径就是从src开始找,根据图片的结构可以看出, 就是在 file目录的txt目录下。这样工程打包以后同样可以找到路径。