java读取资源路径的几种实现方式

 更新时间:2025年02月13日 08:49:37   作者:worilb  
文章总结了Java读取资源路径的几种方式,并指出了在JUnit测试文件和普通类中读取资源路径的区别,普通类中读取资源路径时,只返回主目录,而JUnit测试文件中可以精确到所在模块

java读取资源路径几种方式

    @Test
    public void path() throws IOException {
        System.out.println("用户当前工作目录"+System.getProperty("user.dir"));
        File directory = new File("");
        String path2 = directory.getCanonicalPath();
        System.out.println("当前工作目录1:"+path2);
        String path3 = directory.getAbsolutePath();
        System.out.println("当前工作目录2:"+path3);

        String path = ClassUtils.getDefaultClassLoader().getResource("").getPath();
        System.out.println("类加载器返回默认路径:"+path);
        String path1 = ResourceUtils.getURL("classpath:").getPath();
        System.out.println("ResourceUtils返回默认路径:"+path1);
        String resourcePath = Thread.currentThread().getContextClassLoader().getResource("").getPath();
        System.out.println("resourcePath返回默认路径:"+resourcePath);


        ClassPathResource classPathResource = new ClassPathResource("excel/xx.xlsx");
        System.out.println("ClassPathResource返回资源路径:"+classPathResource.getURL());
        URL resource = this.getClass().getClassLoader().getResource("excel/xx.xlsx");
        System.out.println("类加载器返回资源路径:"+resource.getPath());
        URL url = ResourceUtil.getResource("excel/xx.xlsx");
        System.out.println("ResourceUtil返回资源路径:"+url.getPath());


    }

注意:

以上是在Junit测试文件中的结果

工作可以精确到所在模块,而普通类里打印是只有主目录没有模块的。

如下:

  public static void main(String[] args) throws IOException {
        System.out.println("用户当前工作目录"+System.getProperty("user.dir"));

        File directory = new File("");
        String path2 = directory.getCanonicalPath();
        System.out.println("当前工作目录1:"+path2);
        String path3 = directory.getAbsolutePath();
        System.out.println("当前工作目录2:"+path3);


    }

总结

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

相关文章

  • java开发之基于Validator接口的SpringMVC数据校验方式

    java开发之基于Validator接口的SpringMVC数据校验方式

    这篇文章主要介绍了java开发之基于Validator接口的SpringMVC数据校验方式,文中附含详细示例代码,有需要的朋友可以借鉴参考下
    2021-09-09
  • SpringBoot自定义转换器应用实例讲解

    SpringBoot自定义转换器应用实例讲解

    SpringBoot在响应客户端请求时,将提交的数据封装成对象时,使用了内置的转换器,SpringBoot 也支持自定义转换器,这个内置转换器在 debug的时候,可以看到,提供了124个内置转换器
    2022-08-08
  • Java中的封装性(包含this关键字,构造器等)

    Java中的封装性(包含this关键字,构造器等)

    这篇文章主要介绍了Java中的封装性(包含this关键字,构造器等)问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Java实现简单的贪吃蛇游戏

    Java实现简单的贪吃蛇游戏

    这篇文章主要介绍了Java实现简单的贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Java将一个正整数分解质因数的代码

    Java将一个正整数分解质因数的代码

    这篇文章主要介绍了将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5,需要的朋友可以参考下
    2017-02-02
  • Spring MessageSource获取消息不符合预期的问题解决方案

    Spring MessageSource获取消息不符合预期的问题解决方案

    最近我参与的产品要做国际化支持,选择了用Spring MessageSource来实现,这个Spring 框架提供的工具使用很简单,网上有各种教程文章,这里不做赘述,只说一个实际遇到的问题及解决方案,需要的朋友可以参考下
    2024-01-01
  • JAVA用for循环打印空心菱形

    JAVA用for循环打印空心菱形

    大家好,本篇文章主要讲的是JAVA用for循环打印空心菱形,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • springboot多节点应用里的雪花算法唯一性详解

    springboot多节点应用里的雪花算法唯一性详解

    雪花算法在单节点下唯一,但在多副本Kubernetes环境中可能重复,通过修改Pod名称生成workId,解决了这个问题,同时避免了第三方组件和网络请求,本文给大家介绍springboot多节点应用里的雪花算法唯一性,感兴趣的朋友一起看看吧
    2024-12-12
  • SpringBoot Starter机制及整合tomcat的实现详解

    SpringBoot Starter机制及整合tomcat的实现详解

    这篇文章主要介绍了SpringBoot Starter机制及整合tomcat的实现,我们知道SpringBoot自己在“后台”帮我们配置了很多原本需要我们手动去的东西,至于这个“后台”是啥,就是Starter机制
    2022-09-09
  • 不可不知道的10个java谎言

    不可不知道的10个java谎言

    这篇文章主要为大家详细介绍了不可不知道的10个java谎言,大家一定要谨慎,需要了解的朋友可以参考一下
    2016-09-09

最新评论