Java中获取资源文件的方法总结
2017-06-03 01:09
477 查看
这里总结3中方法获取资源文件的
ServletContext
Class
ClassLoader
文件的位置
结果显示:
得到结果:
得到结果:
ServletContext
Class
ClassLoader
文件的位置
1. ServletContext
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter pw = response.getWriter(); ServletContext context = this.getServletContext(); /** * 获取不同路径下的资源文件 * servletContext是相对于项目的根目录的,这里为WebContent */ InputStream inputA = context.getResourceAsStream("/a.txt"); InputStream inputB = context.getResourceAsStream("/WEB-INF/classes/cn/zydev/b.txt"); InputStream inputC = context.getResourceAsStream("/WEB-INF/classes/c.txt"); /** * 获取真实的磁盘路径 */ String realPath = context.getRealPath("/WEB-INF/classes/c.txt"); /** * 获取指定目录下的文件(包括目录,深度为1级) */ Set<String> rsc = context.getResourcePaths("/WEB-INF"); String a = IOUtils.toString(inputA); String b = IOUtils.toString(inputB); String c = IOUtils.toString(inputC); pw.print(a+"<br/>"); pw.print(b+"<br/>"); pw.print(c+"<br/>"); pw.print(realPath+"<br/>"); pw.println(rsc); }
结果显示:
2. ClassLoader
使用ClassLoader是相对于classes的protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter pw = response.getWriter(); /** * ClassLoader是相对于classes参照的 * 第一个斜杠可以不写,也可以写成./(熟悉Linux的应该很清楚) */ ClassLoader cl = this.getClass().getClassLoader(); InputStream inputA = cl.getResourceAsStream("/../../a.txt"); InputStream inputB = cl.getResourceAsStream("/cn/zydev/b.txt"); InputStream inputC = cl.getResourceAsStream("/c.txt"); String a = IOUtils.toString(inputA); String b = IOUtils.toString(inputB); String c = IOUtils.toString(inputC); pw.print(a+"<br/>"); pw.print(b+"<br/>"); pw.print(c+"<br/>"); }
得到结果:
3. class
路径前斜杠表示相对于当前的class,不加斜杠相对于classesprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter pw = response.getWriter(); Class cs = this.getClass(); //不加斜杠表示相对于class(CServlet) InputStream inputA = cs.getResourceAsStream("../../../../a.txt"); InputStream inputB = cs.getResourceAsStream("b.txt"); //加斜杠,相对于classes InputStream inputC = cs.getResourceAsStream("/c.txt"); String a = IOUtils.toString(inputA); String b = IOUtils.toString(inputB); String c = IOUtils.toString(inputC); pw.print(a+"<br/>"); pw.print(b+"<br/>"); pw.print(c+"<br/>"); }
得到结果:
相关文章推荐
- Java或者JAR包获取读取资源文件的路径的问题总结
- javaWeb开发中读取资源文件方法总结
- Java或者JAR包获取读取资源文件的路径的问题总结
- java 获取字节码文件的几种方法总结
- Java或者JAR包获取读取资源文件的路径的问题总结
- 【java】获取解析资源文件的方法
- Java 中获取资源(文件)的路径问题总结
- java获取指定资源文件路径的几种方法
- Java代码获取classpath路径方法和资源文件路径方法
- java中HttpServletRequest常用获取url、资源名等方法总结
- java获取资源文件的各种方法
- java路径以及获取资源文件的方法
- Java或者JAR包获取读取资源文件的路径的问题总结
- Java代码获取classpath路径方法和资源文件的读取方法
- Java 获取资源路径的3种方法与区别
- java读取资源文件的N种方法
- Android中String资源文件的String.format方法(java)
- java生成可执行文件的方法总结
- JAVA文件中获取该项目的相对路径方法
- Java 获取指定日期的方法总结