java中file路径_Java中的文件路径

时间:2025-01-15 12:57:06

Java中的文件路径

今天一定在这里解决这个问题,通过路径读文件一般就3种方式,但他们完全不同:

1. File myFile=new File("");

上面这么写是从当前路径读文件,当前路径指启动当前Java进程的路径,不同的情况这个路径都不一样,在eclipse里一般是当前项目的路径,在 Servlet里一般就是Servlet容器的路径。这个路径的绝对值可以通过(""))取到。这个方法同时可以通过绝对路径取文件,如File myFile=new File("D:\\temp\\"); File myFile=new File("/usr/user1/");

2. InputStream myFileStream = ().getResourceAsStream("");

从当前类所在路径读文件, 应该是和当前这个类在同一个目录中的文件。如果路径前放了个"/", 如().getResourceAsStream("/"),那就是从当前classpath开始读了

myFileStream = ().getClassLoader().getResourceAsStream("");

这个容易和第2种混淆,它是指从classpath开始找文件,前面加不加"/"都一样,其实它相当与().getResourceAsStream("/"), 与这个有相同效果的还有

().getContextClassLoader().getResourceAsStream("")或

().getContextClassLoader().getResourceAsStream("/")

("")或

("/")

下面这个代码

package ;

import ;

class TestPath {

public static void main(String[] args) throws Exception {

(().getContextClassLoader().getResource(""));

(().getResource(""));

((""));

(().getResource(""));

((""));

(("/"));

(new File("").getAbsolutePath());

((""));

}

}

它的输出:

file:/C:/TestArena/bin/

file:/C:/TestArena/bin/

file:/C:/TestArena/bin/

file:/C:/TestArena/bin/

file:/C:/TestArena/bin/com/test/path/

file:/C:/TestArena/bin/

C:\TestArena

C:\TestArena