NiceLeeのBlog 用爱发电 bilibili~

Java 从jar包中读取资源文件

2019-01-15
nIceLee

阅读:


由于某些需要,把资源打包进了jar包。那么如何从jar包里面加载相应资源呢? 我们可以使用 ClassLoader来加载

简单介绍

  • ClassLoader 是类加载器的抽象类。它可以在运行时动态的获取加载类的运行信息。
    //查找具有给定名称的资源,并返回资源的URL对象。资源可以是图像、声音、文本等。
    public URL getResource(String name) 
    //返回读取指定资源的输入流。
    public InputStream getResourceAsStream(String name); 
    
  • ClassLoader是抽象的,无法实例化对象,需要使用.getClass()来获取。

代码示例

  • 当前 jar包结构如图:

  • 获取favicon.png 资源代码如下:
    public class Test {
      public  void getResource() throws IOException{    
          //查找指定资源的URL,其中res.txt仍然开始的bin目录下 
          URL fileURL=this.getClass().getResource("/resources/favicon.png");
          System.out.println(fileURL.getFile());
      }
    }
    
  • 源码工程
    https://github.com/nICEnnnnnnnLee/FileSpliter
    ps: (广告)上面那个工程就是文件分割器,可以在此基础上自己DIY,处理1GB文件大概20~50s,效果如图:

内容
隐藏