首页 > 代码库 > Java Project打包,发布到Web Project下之后,运行Web Project出现找不到Java Project中资源的解决办法
Java Project打包,发布到Web Project下之后,运行Web Project出现找不到Java Project中资源的解决办法
要想使得web项目可以访问引用的Java Project中的资源,需要在Java Project中,将需要的IO操作的文件都放置到src目录下
法一
在Java Project中,有IO操作的类需要这样写
package cn.edu.test; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class Writer { public static void main(String[] args) throws IOException { System.out.println(read()); } public static String read() { // resource/a/b/test.txt在src目录下 InputStream resourceAsStream = Writer.class.getClassLoader().getResourceAsStream("resource/a/b/test.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(resourceAsStream)); String readLine = null; try { readLine = br.readLine(); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) try { br.close(); } catch (IOException e) { e.printStackTrace(); } } System.out.println(readLine); return readLine; } } |
但是这种方法有一定的局限性,比如拿到路径之后获取到的返回值是一个InputStream输入流的对象,当我们使用Apache commons-io这个强大的IO包来操作文件时,该包中的方法接收的参数都是String类型的路径,而不是输入流对象。所以该方法不便于使用commons-io包。
法二
同样是在Java Project中的类,如果有IO操作,需要这样写
package cn.edu.test; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; public class Writer { public static void main(String[] args) throws IOException { System.out.println(read()); } public static String read() { // resource/a/b/test.txt存放在src目录下 String path = Writer.class.getClassLoader().getResource("").getPath(); path += "resource/a/b/test.txt"; System.out.println(path); String readFileToString = null; try { readFileToString = FileUtils.readFileToString(new File(path)); } catch (IOException e) { e.printStackTrace(); } return readFileToString; } } |
Java Project打包,发布到Web Project下之后,运行Web Project出现找不到Java Project中资源的解决办法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。