不得不说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")

posted on 2014-04-13 22:44  ZimZz  阅读(318)  评论(0编辑  收藏  举报