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());
            //下面四种情况取编译后target\classes 目录下的文件
            // 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文件时指定配置文件目录

 

转载于:https://www.cnblogs.com/virgosnail/p/10119674.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要创建resource目录,可以按照以下步骤进行操作: 1. 在你的项目找到src/main目录,右键点击该目录,选择New -> Directory。 2. 在弹出的对话框,输入目录名称为“resources”,然后点击OK按钮。 3. 现在你已经成功创建了一个名为“resources”的目录,可以在其添加你需要的资源文件,例如图片、音频、配置文件等。 4. 在代码使用这些资源文件时,可以使用相对路径来引用它们,例如: InputStream is = getClass().getResourceAsStream("/config.properties"); 这样就可以读取resources目录下的config.properties文件了。 希望这些步骤能够帮助你创建resource目录。 ### 回答2: 在创建 Android 应用程序时,可以使用 Android Studio IDE 来为应用程序创建 RESOURCE 目录RESOURCE 目录是存储应用程序的资源文件文件夹,例如图像、布局和样式等等。在应用程序开发RESOURCE 目录是非常重要的,因为它们是用于指定应用程序的各种可视元素的。 首先,打开 Android Studio IDE,并新建一个项目。在项目设置,你需要先选择一个项目模板,然后在选择上,进入到 Project 配置页面,如下图所示: ![image1](https://img-blog.csdn.net/20180105203316660?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc29jaWFsX2tleWJvYXJk/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70) 在 Project 配置页面,你需要点击“New 面板”,然后在下拉菜单,选择“Folder”,如下图所示: ![image2](https://img-blog.csdn.net/20180105203345526?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc29jaWFsX2tleWJvYXJk/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70) 在选择“Folder”之后,你需要输入 RESOURCE 目录的名称,然后将其添加到 Android 项目,如下图所示: ![image3](https://img-blog.csdn.net/20180105203405899?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc29jaWFsX2tleWJvYXJk/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70) 在输入 RESOURCE 目录名称之后,点击“OK 面板”,然后 RESOURCE 目录就会被创建并添加到项目,如下图所示: ![image4](https://img-blog.csdn.net/20180105203433930?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc29jaWFsX2tleWJvYXJk/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70) 此时,你可以在文件资源(Project 面板)看到刚刚创建的 RESOURCE 目录,如下图所示: ![image5](https://img-blog.csdn.net/20180105203525121?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc29jaWFsX2tleWJvYXJk/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70) 总之,你只需要在 Android Studio IDE 选择“New 面板”->“Folder”->输入 RESOURCE 目录名称->点击“OK 面板”,就可以为你的 Android 应用程序创建 RESOURCE 目录。 ### 回答3: 在Android Studio的项目结构,创建Resource目录可以让我们在项目使用特定类型的资源文件Resource目录的创建方法如下: 1.在Android Studio左侧的Project(Project Structure)结构窗口选择app目录。 2.右键单击该目录,然后从上下文菜单选择New > Directory。 3.输入resource作为目录名称,然后再次单击OK。 4.在默认情况下,创建的目录是空的。我们需要手动添加所需的资源文件类型,如layout、values、drawable等。 5.要添加layout目录,请右键单击resource目录,并从上下文菜单选择New > Directory。 6.输入layout作为目录名称,然后单击OK。 7.现在我们已经创建了layout目录。在该目录下,我们可以添加所需的XML布局文件以供使用。 8.要添加values目录,请重复步骤5和6,将目录名称更改为values。 9.在values目录下,我们可以添加strings.xml、colors.xml、dimens.xml和其他XML文件以供使用。 10.要添加drawable目录,请重复步骤5和6,选择drawable作为目录名称。 11.在drawable目录下,我们可以添加PNG、JPEG、SVG等类型的图像文件以供使用。 这样,我们就可以在创建了resource目录后,添加所需的资源文件类型以供使用。Resource目录的创建可以更好地组织我们的代码和资源文件,使我们的项目更加易于管理和维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值