javaweb项目中对于资源文件的读取
来源:互联网 发布:图像空间的消隐算法 编辑:程序博客网 时间:2024/06/06 04:41
分成普通Java类和servlet类 两种情况考虑读取资源文件
要点说明:
1:在javaweb项目中所有src下的资源在部署后都会被弄到WEB-INF/classes/下
2:this.getServletContext().getRealPath("/");来的得到当前web应用在硬盘上的绝对路径
3:FileInputStream in = new FileInputStream("资源名");//如果这里用的是相对路径,那么这里是相对于服务器的虚拟机而言的。例如tomcat的/bin
4:采用类加载方式的相对路径是classpath,可以使用../获取上一路径。
具体说明:
在servlet中:
1:当资源在src下时:
InputStream in = this.getServletContext().getResourceAsStream(“/WEB-INF/classes/资源名”);
2:当资源在项目根目录下的时候:InputStream in = this.getServletContext().getResourceAsStream(“/资源名”);
3:在考虑1、2的前提下,可以通过:
String path = this.getServletContext().getRealPath("/");//得到当前应用在服务器的绝对路径
FileInputStream in = new FileInputStream(path+"/资源名");//此时读取的是资源的绝对路径
在普通的java类中:
说明:其实我们可以通过传递ServletContext对象,然后读取资源如上,但是考虑到要降低对象之间的耦合性,所以不采取此种方法。
解决方法(采用类加载器):
1:类名.class.getClassLoader().getResourceAsStream("资源名");//放在src下,看要点说明第4点。此种方法存在一个缺点:在第二次调用方法读取资源之前若资源内容发生变化,第二次读取的内容仍然是第一次读取的内容,因为类加载器发现时同一个类,所以直接返回原来的资源。
2:String path = 类名.class.getClassLoader().getResource("资源名").getPath();//通过URI形式
FileInputStream in = new FileInputStream(path);
提示:在路径中获取资源名称:String name = path.substring(path.lastIndexOf("\\")+1);
- javaweb项目中对于资源文件的读取
- javaweb项目中对于资源文件的读取
- javaweb项目中对于资源文件的读取
- javaweb项目中对于资源文件的读取
- javaweb项目中对于资源文件的读取
- javaweb项目中对于资源文件的读取
- javaweb项目中对于资源文件的读取(to be continue)
- web项目中对于资源文件的读取
- java web项目中对于资源文件的读取
- JavaWeb中读取文件资源的路径问题
- JavaWeb中读取文件资源的路径问题
- JavaWeb中读取文件资源的路径问题
- JavaWeb中读取文件资源的路径问题
- JavaWeb中读取文件资源的路径问题
- JavaWeb中读取文件资源的路径问题
- JavaWeb中读取文件资源的路径问题
- JavaWeb中读取文件资源的路径问题
- 项目中读取资源文件
- 百度编辑器 ueditor System.Web.HttpException: 未能执行 URL。
- Android apk安装过程及Java、JNI读取安装包内assets资源文件的两种方法(附源码实例)
- Bugly Android热更新详解
- (Bug汇总)
- JQuery 遍历web中的Table并对其进行操作
- javaweb项目中对于资源文件的读取
- 手把手教你搭建谷歌TensorFlow深度学习开发环境和更高级的keras开发安装!
- Jedis调用之Centos7安装部署redis3.2.8(一)
- 在Struts2中,自定义radio与select的值
- React Native简介与MAC平台下环境搭建
- MYSQL语句按中文拼音排序
- ElasticSearch.net结构化查询
- leetcode day1
- Django自定义列表 models字段显示