读取资源的文件的几种方式

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_42292373/article/details/101299044

常常因为读取资源带不带 / 搞的一脸懵逼,今天总结以下,几种读取方式的不同总结

项目结构图

在这里插入图片描述

第一种方式

路径的读取是安装当前操作类的相对位置进行读取的

 
 File file = new File(ClassAnnotationReader.class.getResource("/").toURI());
 
结果:/Users/wangz351/Documents/project/myspring/target/spring-1.0/WEB-INF/classes

File file = new File(ClassAnnotationReader.class.getResource("../").toURI());
结果
/Users/wangz351/Documents/project/myspring/target/spring-1.0/WEB-INF/classes/com/ljy/spring 

File file = new File(ClassAnnotationReader.class.getResource("./").toURI());
结果
file:/Users/wangz351/Documents/project/myspring/target/spring-1.0/WEB-INF/classes/com/ljy/spring/web/

第二种方式

注意这里不能写成 /config/db.properties

public class demo {
    public static void main(String[] args) {
        InputStream is = ClassReadResourceDemo.class.
                getClassLoader().getResourceAsStream("config/db.properties");
        Properties prop = new Properties();
        try {
            prop.load(is);
            System.out.println(prop.getProperty("key"));
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

第三种方式

这个带 /

is = ClassReadResourceDemo.class.getResourceAsStream("/config/config.properties");
        try {
            prop.load(is);
            System.out.println(prop.getProperty("key"));
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

第四种方式

    is = ClassReadResourceDemo.class.getClassLoader().getResourceAsStream("config/config.properties");
        try {
            prop.load(is);
            System.out.println(prop.getProperty("key"));
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

第五种方式

 Reader reader = Resources.getResourceAsReader(config/config.properties);

猜你喜欢

转载自blog.csdn.net/qq_42292373/article/details/101299044