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);

    }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java中的关键字volatile详解

    Java中的关键字volatile详解

    这篇文章主要介绍了Java中的关键字volatile,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Java面向对象程序设计:继承,多态用法实例分析

    Java面向对象程序设计:继承,多态用法实例分析

    这篇文章主要介绍了Java面向对象程序设计:继承,多态用法,结合实例形式分析了java继承与多态的相关概念、原理、实现方法与操作注意事项,需要的朋友可以参考下
    2020-04-04
  • 测量Java对象所占内存大小方式

    测量Java对象所占内存大小方式

    这篇文章主要介绍了测量Java对象所占内存大小方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Java使用split截取字符串过程解析

    Java使用split截取字符串过程解析

    这篇文章主要介绍了Java使用split截取字符串过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • mybatis-plus配置拦截器实现sql完整打印的代码设计

    mybatis-plus配置拦截器实现sql完整打印的代码设计

    在使用mybatis-plus(mybatis)的时候,往往需要打印完整的sql语句,然而输出的日志不是很理想,因为sql语句中的关键字段信息都是用?来代替的,所以本文分享了一下自己写了一个拦截器实现了sql完整的打印,需要的朋友可以参考下
    2024-06-06
  • Java异常处理3个避坑神操作总结(告别崩溃式报错)

    Java异常处理3个避坑神操作总结(告别崩溃式报错)

    日常Java开发中,有些细节看似微小,却能大幅影响代码质量,这篇文章主要介绍了Java异常处理3个避坑神操作总结的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-04-04
  • SpringMVC静态资源访问问题如何解决

    SpringMVC静态资源访问问题如何解决

    这篇文章主要介绍了SpringMVC静态资源访问问题如何解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Java 开发的几个注意点总结

    Java 开发的几个注意点总结

    这篇文章主要介绍了Java开发的几个注意点的相关资料,需要的朋友可以参考下
    2016-09-09
  • AQS(AbstractQueuedSynchronizer)抽象队列同步器及工作原理解析

    AQS(AbstractQueuedSynchronizer)抽象队列同步器及工作原理解析

    AQS是用来构建锁或者其他同步器组件的重量级基础框架及整个JUC体系的基石,通过内置的FIFO对列来完成资源获取线程的排队工作,并通过一个int类型变量表示持有锁的状态,本文给大家详细介绍下AQS抽象队列同步器的相关知识,感兴趣的朋友一起看看吧
    2022-03-03
  • SpringBoot实现敏感词过滤功能示例

    SpringBoot实现敏感词过滤功能示例

    本文主要介绍了SpringBoot实现敏感词过滤功能示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-11-11

最新评论