Class.getResourceAsStreame 类文件读取配置文件信息

举报
brucexiaogui 发表于 2021/12/30 01:48:34 2021/12/30
【摘要】 Class.getResourceAsStreame 类文件读取配置文件信息 一、为什么要读取配置信息 1、一般需要经常变动的文件信息,需要将他们放到配置文件中,这样做是为了在更改信息的时候比在java代码中改变方便。比如JDBC链接数据库的URL地址和用户名、密码。需要配置到配置文件中方便修改 二、如何读取配置文件中...

Class.getResourceAsStreame 类文件读取配置文件信息


一、为什么要读取配置信息

1、一般需要经常变动的文件信息,需要将他们放到配置文件中,这样做是为了在更改信息的时候比在java代码中改变方便。比如JDBC链接数据库的URL地址和用户名、密码。需要配置到配置文件中方便修改


二、如何读取配置文件中的信息

Class.getResourceAsStream() 会指定要加载的资源路径与当前类所在包的路径一致。
     例如
写了一个MyTest类在包com.test.mycode 下,那么MyTest.class.getResourceAsStream("name") 会在com.test.mycode包下

查找响应的资源。
     如果这个name是以 '/' 开头的,那么就会从classpath的根路径下开始查找。
  
 ClassLoader.getResourceAsStream()  无论要查找的资源前面是否带'/' 都会从classpath的根路径下查找。
    所以: MyTest.getClassLoader().getResourceAsStream("name") 和
            MyTest.getClassLoader().getResourceAsStream("name") 的效果是一样的。

三、读取同类下的配置文件实例

(这种方式一般用在读取同类下目录的文件,如果是不在同类路径下,即跨路径读取需要用到类加载器方式)

1、实例介绍:ReadFile类下面创建一个配置文件 prepertie文件,ReadFile并且读取这个配置文件。


2、实现读取配置文件实例


  
  1. package com.test.test;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.net.URL;
  5. import org.junit.Test;
  6. public class ReadFile {
  7. //读取同目录下下的文件 读取IO字节码
  8. @Test
  9. public void readSelf() throws IOException{
  10. //1、直接使用本类字节码读取本类文件
  11. InputStream in = ReadFile.class.getResourceAsStream("jdbc.prepertie");
  12. //2、创建一个数组,遍历读取到的文件
  13. byte[] by = new byte[in.available()];
  14. int len = in.read(by);
  15. String s = new String(by,0,len);
  16. System.out.println(s);
  17. }
  18. //读取同目录下下的文件 读取URL路径
  19. @Test
  20. public void readURL(){
  21. //1、通过本类读取本类目录下的文件目录
  22. URL url = ReadFile.class.getResource("jdbc.prepertie");
  23. //2、获取url路径
  24. String path = url.getPath();
  25. System.out.println(path);
  26. }
  27. }


3、运行结果


文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/77923062

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。