Java读取项目内的资源文件

Java读取项目的资源文件,首先要做的就是访问到这个文件,访问文件的路径我觉得有两种做法,第一种是通过类加载路径来实现,这种方法可以访问sourcefolder下面的文件

第二种方法是通过项目的根目录来访问文件,这样可以获取到非sourcefolder目录底下的文件。接下来贴上代码吧。

1.项目文件目录结构展示


2.然后是调用代码以及说明

package com.wzxy.my.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class test1 {

    
    /**
     * 读取resources文件夹下面的内容,通过绝对路径来读取文件,绝对路径从类加载器开始
     */
    public void testGetResource(){
        
         Properties prop = new Properties();   
            InputStream in = Object.class.getResourceAsStream("/resources/test1.properties");   
            try {   
                prop.load(in);   
                System.out.println("开始加载文件");
                System.out.println(prop.getProperty("myname").trim());
                System.out.println(prop.getProperty("myage").trim());
                in.close();
               
            } catch (IOException e) {   
                e.printStackTrace();   
                try {
                    in.close();
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
         
    }
    
    /**
     * 获取不是sourcefolder文件夹下的文件
     * 1.Object.class.getResourceAsStream("/res/test2.properties");这样是获取不到的,
     *   因为文件没有在类加载器文件底下。
     * 2.如果该文件位于同样是sourcefolder的另一个文件夹地下,也是可以这样访问的,
     *   也就是说只要是位于sourcefolder底下都可以通过类加载器路径加载
     * 3.跟调用类位于同一个目录底下的文件可以直接读取 InputStream in = test1.class.getResourceAsStream("test4.properties");
     * 4.读取非source文件夹底下的文件可以采用in = new FileInputStream(new File("res/test2.properties"));
     *
     */
    public void testgetresource2(){
        
         Properties prop = new Properties();   
         FileInputStream in;
        try {
            in = new FileInputStream(new File("WebRoot/res3/test5.properties"));
            try {   
                prop.load(in);   
                System.out.println("开始加载文件");
                System.out.println(prop.getProperty("myname").trim());
                System.out.println(prop.getProperty("myage").trim());
                in.close();
               
            } catch (IOException e) {   
                e.printStackTrace();   
                try {
                    in.close();
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
            
        } catch (FileNotFoundException e2) {
            // TODO Auto-generated catch block
            e2.printStackTrace();
        }   
            
        
        
    }
}

好了,就这些了。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值