如何使用Class和ClassLoader加载文件
很多时候我们都需要在程序中加载各种文件,比如在加载配置文件,加载properties文件,或者只是加载一个文本文件,然后输出其中的内容,我在初学java的时候,就对加载文件非常头疼,今天又遇见了加载文件的问题,索性就一下子搞清楚,然后就有了这篇博客,希望能帮到对加载文件有疑惑的人吧。 一、什么是类路径 二、加载文件 ?
? import org.apache.commons.io.IOUtils; import java.io.InputStream; /** * Created by Yifan Jia on 2018/5/5. */ public class AJava { public static void main(String[] args) throws Exception { AJava a = new AJava(); ClassLoader cl = a.getClass().getClassLoader(); InputStream in = cl.getResourceAsStream("1.txt"); String s = IOUtils.toString(in); System.out.println(s); } } ? 结果: ?
package com.first; import java.io.InputStream; /** * Created by Yifan Jia on 2018/5/5. */ public class BJava { public static void main(String[] args) throws Exception { BJava b = new BJava(); Class bClass = b.getClass(); InputStream in = bClass.getResourceAsStream("1.txt"); String s = IOUtils.toString(in); System.out.println(s); } } ? ? 就会出现错误,提示找不到文件: ?
package com.first; import org.apache.commons.io.IOUtils; import java.io.InputStream; /** * Created by Yifan Jia on 2018/5/5. */ public class BJava { public static void main(String[] args) throws Exception { BJava b = new BJava(); Class bClass = b.getClass(); InputStream in = bClass.getResourceAsStream("/1.txt"); String s = IOUtils.toString(in); System.out.println(s); } } ? ? 注意这里只是比上一个代码多了一个/ 符号 ?
2、使用Class加载文件时,在getResourceAsStream("")中填入的路径是相对于 如果感觉文章描述的不是很清楚,可以看:讲解的视频 https://www.bilibili.com/video/av16095869/index_41.html?t=649--------------------- 作者:阿古拉斯啦啦 来源:CSDN 原文:https://blog.csdn.net/q982151756/article/details/80206574 版权声明:本文为博主原创文章,转载请附上博文链接! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |