java开发之文件路径剖析
来源:互联网 发布:死神vs火影月改优化版 编辑:程序博客网 时间:2024/06/10 02:22
从事开发工作三年有余,但是说句实话,对于项目开发中文件的相对路径该如何写,一直是一个很困扰我的问题,今天花时间终于把这块搞明白了,特此写一篇博客,一是为了便于自己记忆,二是也希望和我一样有困扰的朋友们看了有所帮助,文章纯属个人经实战验证后参悟出来的道理,不足之处望大家留言指出,非常感谢!好了,切入正题吧!
要弄清文件的相对路径问题首先依次解答以下几个问题:
第一、普通java工程目录和web工程目录有什么区别?
1、创建时对比:web项目相对于普通java项目多了一个企业级开发环境javaee
2.项目目录对比:web项目多了javaee开发所需要的jar包
第二、web项目目录结构:eclipse中项目目录中src下的文件编译后会放到WebRoot/WEB-INF/classes目录下,发布时会将WebRoot下的所有内容拷贝到tomcat/webapps/web应用名/下:
第三、不同场景下文件的相对路径是相对什么而言的?
1.普通java类中:相对路径的根目录是项目的根文件夹,即是相对于项目根目录而言的,所以在书写相对路径时应以根目录为参考点,在此就是GenericProject文件夹了
2.通过ServletContext获取资源文件时:相对路径是web应用所在根目录,注意这里是web应用而不是工程目录,即对应于tomcat中web应用所在根目录;注意:工程目录中直接放在项目根目录下的资源文件是获取不到的,因为项目发布时只是将webroot下的内容发布过去,而对于项目根目录下的文件是不发布的,即这里的project.properties是获取不到的
3.通过类加载器获取资源文件时:通过类加载器获取资源文件时,相对路径是相对于类加载器加载.class文件的根目录的
但是,此处需注意一个问题,当我们通过classLoader.getResourceAsStream(文件相对路径),将文件以流的方式读进内存时,如果此时再更改资源文件1.properties,内存中的数据因为没有重新加载,所以数据是不能保持同步更新的,所以一般不使用这种以流的方式获取资源文件的,而是用下面的方式:
以上总结了三种场景下文件的相对路径该如何书写问题,包括在普通java类中的相对路径,通过类加载器获取资源以及通过ServletContext获取资源文件三种情况下相对路径的写法。
- java开发之文件路径剖析
- java文件路径之疑惑
- iOS开发之文件和路径
- ios开发之文件路径操作
- Java 开发报表时候报表文件路径
- java文件操作之路径的获得
- Java-1.7新特性之文件路径
- java文件操作 之 创建文件夹路径和新文件
- java之继承剖析
- Java开发之文件上传
- IOS开发 文件路径
- IOS开发 文件路径
- IOS开发 文件路径
- Biztalk 开发之 使用xml数据项构造输出文件路径
- Biztalk 开发之 使用xml数据项构造输出文件路径
- iphone开发必知点之--文件路径
- Discuz!开发之文件加载路径函数libfile()介绍
- php开发之路径引用,头文件引入
- 一个栈的入栈序列为ABCDEF,则不可能的出栈序列是
- 8086汇编学习之[BX],CX寄存器与loop指令,ES寄存器等
- Debian 自动运行机制
- Tomcat卡死的情况
- 上古神器sed命令(上)
- java开发之文件路径剖析
- 剑指offer——第一个只出现一次的字符
- HDU5547 Sudoku(深搜DFS)(2015CCPC)
- 【linux】ubuntu 安装、配置与启动tftp服务
- HDU 3709 Balanced Number(数位dp)
- 跟我一起学OpenGL-矩形之index buffer的使用
- 第一次出去比赛(河工大校赛4.22)
- 回文子序列 ssl2662 暴力
- SSL1585 取数游戏(递归)