zoukankan      html  css  js  c++  java
  • IDEA中读取 resource目录下文件

    1. 资源文件

    2. 加载文件

        public  void test() {
    
            try {
                System.out.println("begin test");
                String filepath = "log4j2.yml";
                // 此处取项目路径 + 传入的路径,改路径获取不到文件
                // 如果要获取文件需要传入 src/main/resources/log4j2.xml
                File temp = new File(filepath);
                System.out.println(temp.getAbsolutePath());
                //下面四种情况取编译后targetclasses 目录下的文件
                // File 形式
                File file = new File(BootApplication.class.getClassLoader().getResource(filepath).getFile());
                System.out.println(file.getAbsolutePath());
                // InputStream 形式
                InputStream inputStream = BootApplication.class.getClassLoader().getResourceAsStream(filepath);
                System.out.println(inputStream);
                // URL 形式
                URL url = BootApplication.class.getClassLoader().getResource(filepath);
                System.out.println(url);
                // URI 形式
                URI uri = BootApplication.class.getClassLoader().getResource(filepath).toURI();
                File uriFile = new File(uri);
                System.out.println(uriFile.getAbsolutePath());
            } catch (URISyntaxException e) {
                System.err.println(e);
            }
        }

    3. 加载的文件位置

     4. Linux下的异常问题

      读取jar包中的文件的情况下

    4.1 getResource

      URL url = LoadCacheFile.class.getClassLoader().getResource(filepath)..getFile();

      Linux下的输出:

      

      文件路径中多了两个 ! ,导致找不到文件而报错;有时URL中还可能出现多了一个空格的问题;

    4.2 URI

                    URI resource = LoadCacheFile.class.getClassLoader().getResource(filepath).toURI();
                    log.info("{}",new File(resource).getAbsolutePath());

    异常现象:

      

    5. 正确的使用方式

    5.1  getResourceAsStream

      LoadCacheFile.class.getClassLoader().getResourceAsStream(filepath) 这种方式在Windows和Linux下都没有问题,建议使用此种方式

    5.2 配置文件尽量不要放在jar包中,最好在jar包外单独的放在一个文件夹,也便于后期配置文件的修改。

      出门左拐:启动jar文件时指定配置文件目录

  • 相关阅读:
    第六次作业--结对编程第二次
    第四次作业——项目选题报告
    第五次作业——结对
    第三次作业——团队项目展示
    第二次作业——个人项目实战
    第一次作业-准备
    码农开富农,锄头得先拿
    一个关于狗记录的Java练习
    一个随手练的题目后面再弄一个带面版的
    java拓荒者
  • 原文地址:https://www.cnblogs.com/virgosnail/p/10119674.html
Copyright © 2011-2022 走看看