java.io.File中的绝对路径和相对路径.
2011-06-10 09:18
447 查看
转自http://lanmh.iteye.com/blog/515166
File
类是用来构造文件或文件夹的类
,
在其构造函数中要求传入一个
String
类型的参数
,
用于指示文件所在的路径
.
以前一直使用绝对路径作为参数
,
其实这里也可以使用相对路径
.
使用绝对路径不用说
,
很容易就能定位到文件
,
那么使用了相对路径
jvm
如何定位文件的呢
?
按照
jdk Doc
上的说法
”
绝对路径名是完整的路径名,不需要任何其他信息就可以定位自身表示的文件。相反,相对路径名必须使用来自其他路径名的信息进行解释
。默认情况下,
包中的类总是根据当前用户目录
来分析相对路径名。此目录由系统属性
指定,通常是
Java
虚拟机的调用目录
.
”
相对路径顾名思义
,
相对于某个路径
,
那么究竟相对于什么路径我们必须弄明白
.
按照上面
jdk
文档上讲的这个路径是
”
当前用户目录
”
也就是
”
java
虚拟机的调用目录
”
.
更明白的说这个路径其实是我们在哪里调用
jvm
的路径
.
举个例子
:
假设有一
java
源文件
Example.java
在
d
盘根目录下
,
该文件不含
package
信息
.
我们进入命令行窗口
,
然后使用
”
d:
”
命令切换到
d
盘根目录下
,
然后用
”
javac Example.java
”
来编译此文件
,
编译无错后
,
会在
d
盘根目录下自动生成
”
Example.class
”
文件
.
我们在调用
”
java Example
”
来运行该程序
.
此时我们已经启动了一个
jvm,
这个
jvm
是在
d
盘根目录下被启动的
,
所以此
jvm
所加载的程序中
File
类的相对路径也就是相对这个路径的
,
即
d
盘根目录
:D:/.
同时
”
当前用户目录
”
也是
D:/.
在
System.getProperty(
“
user.dir”
);
系统变量
”
user.dir”
存放的也是这个值
.
我们可以多做几次试验
,
把
”
Example.class
”
移动到不同路径下
,
同时在那些路径下
,
执行
”
java Example
”
命令启动
jvm,
我们会发现这个
”
当前用户目录
”
是不断变化的
,
它的路径始终和我们在哪启动
jvm
的路径是一致的
.
搞清了这些
,
我们可以使用相对路径来创建文件
,
例如
:
File file = new File(
“
a.txt
”
);
File.createNewFile();
假设
jvm
是在
”
D:/
”
下启动的
,
那么
a.txt
就会生成在
D:/a.txt;
此外
,
这个参数还可以使用一些常用的路径表示方法
,
例如
”
.
”
或
”
./
”
代表当前目录
,
这个目录也就是
jvm
启动路径
.
所以如下代码能得到当前目录完整路径
:
File f = new File(“.”);
String absolutePath = f.getAbsolutePath();
System.out.println(absolutePath);//D:/
最后要说说在
eclipse
中的情况
:
Eclipse
中启动
jvm
都是在项目根路径上启动的
.
比如有个项目名为
blog,
其完整路径为
:D:/work/IDE/workspace/blog.
那么这个路径就是
jvm
的启动路径了
.
所以以上代码如果在
eclipse
里运行
,
则输出结果为
” D:/work/IDE/workspace/blog.”
Tomcat
中的情况
.
如果在
tomcat
中运行
web
应用
,
此时
,
如果我们在某个类中使用如下代码
:
File f = new File(“.”);
String absolutePath = f.getAbsolutePath();
System.out.println(absolutePath);
那么输出的将是
tomcat
下的
bin
目录
.
我的机器就是
”
D:/work/server/jakarta-tomcat-5.0.28/bin/.
”,
由此可以看出
tomcat
服务器是在
bin
目录下启动
jvm
的
.
其实是在
bin
目录下的
”
catalina.bat”
文件中启动
jvm
的
.
File
类是用来构造文件或文件夹的类
,
在其构造函数中要求传入一个
String
类型的参数
,
用于指示文件所在的路径
.
以前一直使用绝对路径作为参数
,
其实这里也可以使用相对路径
.
使用绝对路径不用说
,
很容易就能定位到文件
,
那么使用了相对路径
jvm
如何定位文件的呢
?
按照
jdk Doc
上的说法
”
绝对路径名是完整的路径名,不需要任何其他信息就可以定位自身表示的文件。相反,相对路径名必须使用来自其他路径名的信息进行解释
。默认情况下,
java.io
包中的类总是根据当前用户目录
来分析相对路径名。此目录由系统属性
user.dir
指定,通常是
Java
虚拟机的调用目录
.
”
相对路径顾名思义
,
相对于某个路径
,
那么究竟相对于什么路径我们必须弄明白
.
按照上面
jdk
文档上讲的这个路径是
”
当前用户目录
”
也就是
”
java
虚拟机的调用目录
”
.
更明白的说这个路径其实是我们在哪里调用
jvm
的路径
.
举个例子
:
假设有一
java
源文件
Example.java
在
d
盘根目录下
,
该文件不含
package
信息
.
我们进入命令行窗口
,
然后使用
”
d:
”
命令切换到
d
盘根目录下
,
然后用
”
javac Example.java
”
来编译此文件
,
编译无错后
,
会在
d
盘根目录下自动生成
”
Example.class
”
文件
.
我们在调用
”
java Example
”
来运行该程序
.
此时我们已经启动了一个
jvm,
这个
jvm
是在
d
盘根目录下被启动的
,
所以此
jvm
所加载的程序中
File
类的相对路径也就是相对这个路径的
,
即
d
盘根目录
:D:/.
同时
”
当前用户目录
”
也是
D:/.
在
System.getProperty(
“
user.dir”
);
系统变量
”
user.dir”
存放的也是这个值
.
我们可以多做几次试验
,
把
”
Example.class
”
移动到不同路径下
,
同时在那些路径下
,
执行
”
java Example
”
命令启动
jvm,
我们会发现这个
”
当前用户目录
”
是不断变化的
,
它的路径始终和我们在哪启动
jvm
的路径是一致的
.
搞清了这些
,
我们可以使用相对路径来创建文件
,
例如
:
File file = new File(
“
a.txt
”
);
File.createNewFile();
假设
jvm
是在
”
D:/
”
下启动的
,
那么
a.txt
就会生成在
D:/a.txt;
此外
,
这个参数还可以使用一些常用的路径表示方法
,
例如
”
.
”
或
”
./
”
代表当前目录
,
这个目录也就是
jvm
启动路径
.
所以如下代码能得到当前目录完整路径
:
File f = new File(“.”);
String absolutePath = f.getAbsolutePath();
System.out.println(absolutePath);//D:/
最后要说说在
eclipse
中的情况
:
Eclipse
中启动
jvm
都是在项目根路径上启动的
.
比如有个项目名为
blog,
其完整路径为
:D:/work/IDE/workspace/blog.
那么这个路径就是
jvm
的启动路径了
.
所以以上代码如果在
eclipse
里运行
,
则输出结果为
” D:/work/IDE/workspace/blog.”
Tomcat
中的情况
.
如果在
tomcat
中运行
web
应用
,
此时
,
如果我们在某个类中使用如下代码
:
File f = new File(“.”);
String absolutePath = f.getAbsolutePath();
System.out.println(absolutePath);
那么输出的将是
tomcat
下的
bin
目录
.
我的机器就是
”
D:/work/server/jakarta-tomcat-5.0.28/bin/.
”,
由此可以看出
tomcat
服务器是在
bin
目录下启动
jvm
的
.
其实是在
bin
目录下的
”
catalina.bat”
文件中启动
jvm
的
.
相关文章推荐
- java.io.File中的绝对路径和相对路径.
- java.io.File中的绝对路径和相对路径
- java.io.File中的绝对路径和相对路径
- java.io.File中的绝对路径和相对路径
- java.io.File中的绝对路径和相对路径
- java.io.File中的绝对路径和相对路径. (转载)
- java.io.File中的绝对路径和相对路径.
- java.io.File中的绝对路径和相对路径.
- java.io.File中的绝对路径和相对路径.
- java.io.File中的绝对路径和相对路径.
- java.io.File中的绝对路径和相对路径.
- java.io.File中的绝对路径和相对路径
- java.io.File中的绝对路径和相对路径
- java.io.file的绝对路径和相对路径
- java.io.File中的绝对路径和相对路径
- java.io.File中的绝对路径和相对路径.
- java.io.File中的绝对路径和相对路径
- java.io.File中的绝对路径和相对路径.
- java.io.File中的绝对路径和相对路径.
- java.io.File中的绝对路径和相对路径.