java如何读取resources目录和同级目录文件
更新时间:2024年12月12日 14:42:25 作者:jzx-sdjz
介绍了Java中读取resources目录和同级目录文件的方法,并讨论了在IDE和发布环境中可能遇到的问题,通过测试发现,执行目录可能会影响文件读取,建议在使用`user.dir`时注意jar包的运行目录问题
java读取resources目录和同级目录文件
1.读取resource目录下的文件
/**
* 读取resource中的文件
*/
private static void readCurrent() {
try {
InputStream in = FilePath.class.getResourceAsStream("/a.properties");
Properties properties = new Properties();
properties.load(in);
System.out.println(properties.getProperty("name"));
System.out.println(properties.getProperty("password"));
} catch (Exception e) {
e.printStackTrace();
}
}2.读取jar包同级目录下的文件
public static void readFile() {
try {
String path = System.getProperty("user.dir") + "/a.properties";
File file = new File(path);
if (file.isFile()) {
System.out.println("找到文件");
} else {
System.out.println("未找到相应文件");
}
} catch (Exception e) {
}
}在IDE中运行的没有问题,但是发布之后发现了问题,user.dir和java -jar命令执行程序所在目录有关系
然后写个测试样例测试一下,发现和执行目录有关系,如果想使用user.dir这个方法,就要注意jar运行的目录问题。
public static void main(String[] args) {
String useDir = System.getProperty("user.dir");
System.out.println(useDir);
}

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
mybatis-plus配置拦截器实现sql完整打印的代码设计
在使用mybatis-plus(mybatis)的时候,往往需要打印完整的sql语句,然而输出的日志不是很理想,因为sql语句中的关键字段信息都是用?来代替的,所以本文分享了一下自己写了一个拦截器实现了sql完整的打印,需要的朋友可以参考下2024-06-06
AQS(AbstractQueuedSynchronizer)抽象队列同步器及工作原理解析
AQS是用来构建锁或者其他同步器组件的重量级基础框架及整个JUC体系的基石,通过内置的FIFO对列来完成资源获取线程的排队工作,并通过一个int类型变量表示持有锁的状态,本文给大家详细介绍下AQS抽象队列同步器的相关知识,感兴趣的朋友一起看看吧2022-03-03


最新评论