java读取Resources下文件

  1. 第一种,读为流文件
InputStream path = this.getClass().getResourceAsStream("/data.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(path));
  1. 第二种, 读取路径
Thread.currentThread().getContextClassLoader()。  
URL l1 =   
Thread.currentThread().getContextClassLoader().getResource("readFile/test1.xml");  
System.out.println(l1);  
  
URL l2 =   
Thread.currentThread().getContextClassLoader().getResource("collection/test2.xml");  
System.out.println(l2);  
  
URL l3 = Thread.currentThread().getContextClassLoader().getResource("test3.xml");  
String l4=l3.getPath();//加上getPath()则去掉前面的file:  
System.out.println(l3);  //     file:/F:/demo/Studying/out/production/Studying/test3.xml  
System.out.println(l4);//      /F:/demo/Studying/out/production/Studying/test3.xml  
  1. 第三种, 读为流文件
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("conf/job_two_one_mapping.txt");  
try(Scanner scanner = new Scanner(is)) {  
    while (scanner.hasNextLine()) {  
        System.out.println(scanner.nextLine());  
    }  
} catch (Exception e) {  
    log.error("读取文件数据异常" ,e);  
}  
  1. 第四种, 读取路径
ResourceBundle bundle = ResourceBundle.getBundle("config");
String url = bundle.getString("url");

该方法默认读取的是resources文件夹下的以.properties为后缀的文件,代码中的例子即为config.properties

  1. 第五种, 读为流文件
InputStream inputStream = Resources.class.getResourceAsStream(“/mybatis.xml”);或者
InputStream resourceAsStream = Resources.class.getClassLoader().getResourceAsStream("a.py");
  1. 第六种, 读取路径
URL resource = Resources.class.getClassLoader().getResource("");
String path = resource.getPath();
底层如下:
public static URL getResource(String resourceName) {
 ClassLoader loader = MoreObjects.firstNonNull(
  Thread.currentThread().getContextClassLoader(),
  Resources.class.getClassLoader());
 URL url = loader.getResource(resourceName);
 checkArgument(url != null, "resource %s not found.", resourceName);
 return url;
}

》》》博主长期更新学习心得,推荐点赞关注!!!
》》》若有错误之处,请在评论区留言,谢谢!!!

Logo

「智能机器人开发者大赛」官方平台,致力于为开发者和参赛选手提供赛事技术指导、行业标准解读及团队实战案例解析;聚焦智能机器人开发全栈技术闭环,助力开发者攻克技术瓶颈,促进软硬件集成、场景应用及商业化落地的深度研讨。 加入智能机器人开发者社区iRobot Developer,与全球极客并肩突破技术边界,定义机器人开发的未来范式!

更多推荐