这几天做一个项目,关于路径做如下笔记,有需要供参考。
取工程内的文件,一般都要用相对路径,这个自然不用多说。
在src统计目录建配置文件目录res,在res中放入配置文件。
读取文件使用方式:
1. MyTest.
class.getResourceAsStream("/res/xx.properties")
2. properties.load(MyTest.class.getClassLoader().getResourceAsStream("res/xx.properties"));
看清楚文件地址的区别,一个"/"
1.MyTest累的路径在bin下的包内。如:/serverSocketTest/bin/com/uisftech/test/
2. ClassLoader的加载路径在bin下
如:/serverSocketTest/bin/
这样在eclipse中运行肯定的没有问题。但是我的项目要求打成jar包,如果只是读取配置文件,肯定没有问题,但是如果是写入就会有问题,因为jar在运行,它是一个文件,一个文件运行时不能写入,这样文件就要拿到jar包外面
这样读取文件就要使用如下方式:registerConfig.load(new FileInputStream("registerConfig.properties"));
如果不写入文件,打成jar包读取文件不能使用这种方式:registerConfig.load(new FileInputStream(Client
Service.class.getClassLoader().getResource("registerConfig.properties").getFile()));
因为读取jar内的文件路径不是标准路径,这样方式会报错。
供参考。