您的位置:首页 > 编程语言 > Java开发

java中Class.getResource用法

2014-07-26 20:44 951 查看
转载自:转载地址

关于getResource的用法文中已经说的比较详细了,但仍有一些细节的地方文中没有指出,我也是思考了一会才明白其中的道理,现在总结如下:

1.对于文中说file3.txt文件的读取方法有两种,分别如下

方法一:File file3 = new File(Test.class.getResource("file3.txt").getFile());

方法二:File file3 = new File(Test.class.getResource("/javaapplication/file3.txt").getFile());
方法三:File file3 = new File(Test.class.getClassLoader().getResource("javaapplication/file3.txt").getFile());
对于方法一:它的意思是从Test.class文件的同级目录下寻找file3.txt文件;

对于方法二:它的意思是从根目录下开始寻找,先在跟目录下找javaapplication这个文件夹,如果存在,则继续在该文件夹下寻找file3.txt文件;这里为什么从根目录下开始寻找是因为路径的开头是“/”这个符号,如果路径改为“javaapplication/file3.txt”,则表示在Test.class的同级目录下开始寻找,另外这里所谓的根目录指的是编译后的目录,比如项目下有src和bin目录,src用来存放源码,bin下用来存放编译后的class文件,则这里的根目录指的就是bin目录;

对于方法三:我觉得可以把Test.class.getClassLoader()理解为切换当前路径为根目录下,然后开始寻找javaapplication,然后在寻找file3.txt文件,所以这里javaapplication前面就不用“/”符号了;

另外对于作者说,对于file1.txt的获取只能采用下面的方法一的方法:

方法一:File
file1 = new File("c:/project/src/javaapplication/file1.txt");

但我这里真正的项目中一般使用 System.getProperty("user.dir")+"\\"+"config\\config.xml"的方法去获取配置文件的,当然这个目前只使用在windows环境下,不知道如果使用在linux环境下是否适用,但很多网友不建议使用该方法,说会出现一些问题;

最后,java中还有Class.getResourceAsStream(), 也可以用于定位和获取资源文件,和Class.getResource差不多,不过返回的是一个InputStream对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: