不得不说Java的文件路径弄得很复杂, 有编译目录和resource目录什么的和解释型语言(PHP)的就是不一样
搞了好几年java一直没认真去研究这些个破路径怎么回事, 每次都忘记, 梳理一下备忘
1. 直接使用绝对路径
这是最简单的一种, 例如 new File("/home/alexis/test.out")
2. 直接使用相对路径
例如 new File("test.out")
这种用法挺搞笑的, 他的路径是从你的工程目录算起的, 例如你有一个工程 TestProject
TestProject
|--test.out
|--src
|--resources
也就是说 test.out 是与 src 位于同一个级别的
3. 使用 Test.class.getClass().getResource 的方法
例如
在一个为于 com.test.alexis 包下的 Test.java 类下使用
1) Test.class.getClass().getResource("test.out")
或
2) Test.class.getClass().getResource("/test.out")
对于第一种用法, 路径是从当前类的包路径开始算的, 也就是 classes/com/test/alexis/test.out
第二种用法则是位于编译目录的更目录, 也就是 classes/test.out
4. 使用 Test.class.getClass().getClassLoader().getResource 的方法
Test.class.getClass().getClassLoader().getResource("test.out") // 没有 "/" 开头
等同于
Test.class.getClass().getResource("/test.out")