====工程结构图

Springboot/Java读取文件_JAVA

///java属性和加载器//

/**
         *  当测试类在 com.spt.example 下
         *  getResourceAsStream("test.txt") 会从com.spt.example包下开始找test.txt
         *  getResourceAsStream("/test.txt") 会从classpath根下开始找test.txt
         */
        this.getClass().getClassLoader().getResourceAsStream("test.txt");
        /**
         * 不在乎是否/test.txt 或者test.txt 都会从classpath根下找
         */
        ClassLoader.getSystemResourceAsStream("text.txt");

        /**
         * bootstrap classloader :负责加载JAVA核心类( jre 下lib和class目录中的内容)
         * extension classloader :负责加载JAVA扩展类(jre 下lib/ext 目录中的内容)
         * system classloader :负责加载应用指定的类 (环境变量classpath中配置的内容)
         */

 

/**
         * bootstrap classloader :负责加载JAVA核心类( jre 下lib和class目录中的内容)
         * extension classloader :负责加载JAVA扩展类(jre 下lib/ext 目录中的内容)
         * system classloader :负责加载应用指定的类 (环境变量classpath中配置的内容)
         */


        /**
         * src/main/resources/test.txt 只能在开发工具中使用 打包和部署路径无效
         *
         * org.springframework.util.ResourceUtils linux下无法使用
         *
         * org.springframework.core.io.ClassPathResource jvm下所有环境均可以使用
         *
         * org.springframework.core.io.ResourceLoader; jvm下所有环境均可以使用
         */