关于文件路径的Java代码笔记
关于文件路径的Java代码笔记
CAMELLIA!!! note 目录
关于文件路径的Java代码笔记
一、绝对路径和相对路径
绝对路径:指文件的完整路径,从根目录开始。
1
2FileInputStream in = new FileInputStream("E:\\powernode\\02-JavaSE\\code\\file.txt");
FileInputStream in = new FileInputStream("E:/powernode/02-JavaSE/code/file.txt");- 这种路径在任何地方都能找到对应的文件,但是不够灵活,不适合移植性较高的项目。
相对路径:相对于当前执行环境的路径。
1
FileInputStream in = new FileInputStream("log");
在IDEA工具中,默认的当前路径是项目的根目录。
在代码中,如果需要使用相对路径,要了解当前的工作目录。在IDEA中,默认是项目的根目录。
1
FileInputStream in = new FileInputStream("chapter08/src/log2");
二、类路径中加载资源
类路径:包含所有编译后的类文件和资源文件的路径。通常在项目的
src
目录或resources
目录下。通过类加载器加载资源:
1
String path = Thread.currentThread().getContextClassLoader().getResource("test/file").getPath();
Thread.currentThread()
:获取当前线程。getContextClassLoader()
:获取当前线程的上下文类加载器。getResource("路径")
:从类路径的根目录开始,加载指定路径的资源。优点:
- 通用性强:适合系统移植,在不同环境下都可以使用相同的路径方式。
- 自动从类路径根目录加载资源,适应性强。
缺点:
- 资源必须在类路径中。如果资源不在类路径中,这种方式无法加载资源。
示例:
1
2
3
4String path = Thread.currentThread().getContextClassLoader().getResource("test/file").getPath();
System.out.println(path);
FileInputStream in = new FileInputStream(path);
三、注意事项
- 使用类路径加载资源时,需要确保资源在类路径中。
- 在IDEA等开发工具中,相对路径是从项目的根目录开始的。
getResource
方法返回的是URL
对象,调用getPath()
方法可以获取资源的路径字符串。