在Java中用File对象来创建文件时,绝对路径一般是不会出现什么问题的,如果使用相对路径,则有可能出现意向不到的问题,以下主要是针对相对路径进行解释
1、Eclipse下的Java Project环境
目录结构如下所示:
JavaTest
src
se.TestDemo.java
resource
text.txt
String filepath = "resource/train.txt";
File file = new File(filepath);
注意:filepath变量的内容
在此,java.io默认情况下用当前目录来分析相对路径名,定位到当前用户目录下("user.dir"),即工程目录d:\JavaTest下,因此此时的相对路径(以当前用户目录为基础)为"resource/train.txt",这样JVM就根据用户当前目录(user.dir)和"resource/train.txt"得到完整路径,即绝对路径,从而找到相应的文件,需要注意的是相对路径的起始处无斜杠“/”,比如上面的filepath。
2、Java EE环境,通过Claserloader用相对路径来读取文件
xml文件一般存放在以下三个位置:
a、WEB-INF目录下
b、WEB-INF/classes目录下或者其classpath的jar包中
c、放在与解析它的java类同一包中
“.”或者“.\”代表当前目录,这个目录就是JVM启动路径
Eclipse中启动JVM一般都是在项目根路径上启动的。
ServletActionContext.getServletContext().getResourceAsStream("/WEB-INF/*.*");就可以得到/WEB-INF/目录下的文件输入流
对于要使用的文件,最好统一放到CLASSPATH路径下,这样才能保证开发和发布的时候均正常
分享到:
-05-21 14:24
浏览 8874
评论