访问jar包内部资源文件的方法

如果在jar中需要访问jar包内部的某个资源文件,可以用class.getResourceAsStream(文件路径)获取文件内容。

假设文件路径是project/src/com/zh/resource, code如下:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;public class test {
    public static void main(String[] args) {
        StringBuffer fileStrBuffer = loadFile("/com/zh/resource/test.txt");
        if(fileStrBuffer!=null) {
            System.out.print(fileStrBuffer);
        }
    }

    /**
     * Load the specified  file.
     *
     * @return The buffer to store file content.
     */
    private static StringBuffer loadFile(String file) {
        StringBuffer buffer = new StringBuffer();
        InputStream is = test.class.getResourceAsStream(file);
        BufferedReader reader;
        try {
            reader = new BufferedReader(new InputStreamReader(is, "utf-8"));
            String tempString = null;
            while ((tempString = reader.readLine()) != null) {
                buffer.append(tempString);
            }
        } catch (UnsupportedEncodingException e) {
            buffer = null;
        } catch (IOException e) {
            buffer = null;
        } finally {
            try {
                is.close();
            } catch (IOException e) {
            }
        }

        return buffer;
}
}

结果:

xxxxx{0}xxxxx{1}xxxxxxxx{2}xxxxxx

原文地址:https://www.cnblogs.com/lan-writenbook/p/8228863.html

时间: 2024-08-01 21:07:26

访问jar包内部资源文件的方法的相关文章

html 如何访问 jar 包里面的静态资源(js、css、字体等)

前言:最近两天在尝试写一个工具 jar 包,里面包含后台处理的 java 代码,包含前端 html.js.css.字体文件等,过程中解决了访问 jar 包里的静态资源问题,所以记录下来. 附:自己的一个 jar 包源码 https://github.com/yuleGH/querydb 方式一: 最开始采用阿里巴巴的源码 druid 的做法,使用一个 servlet,然后所有的请求经过这个 servlet,如果是文件,就读取到文件, 返回给前端. 这种方式经实现,没问题.不过感觉是有点影响性能.

jar包中File 文件找不到的异常分析与解决

源链接: http://hxraid.iteye.com/blog/483115#comments 我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看下面的代码: Java代码 //源代码1: package edu.hxraid; import java.io.*; public class Resource { public  void get

JAVA问题解决——Jar包中资源调用

我在打包工程的时候,遇到在IDE中能够运行但jar包运行错误的情况(FileNotFoundException). 在网上找的很多解决方法都是需要使用getResouce方法获取绝对路径,或者必须先把文件读入才能继续操作. 使用getRescource仍然有上述错误:而要读取的文件是一个需要和前端交互,要在文件上进行操作的文件,必须保证文件原格式不变.所以读入再操作的方法并不适合,因为再输出时格式控制等会十分麻烦. 下面是一些解决问题中学习到的内容: i. jar包是一个文件,我的理解是,jar

javaEE:day2-servlet生命周期、提交解决中文乱码、tomcat加载jar包或类文件的顺序

servlet生命周期 生命周期简介: servlet在服务器第一次被请求的时候new出来,并初始化(即init())再调用service方法.这个实在服务器中new出来,然后用HashMap加的,与客户端无关.客户端之后访问只调用这个servlet的service方法. 具体分为4步: 1 构造方法 :服务器在被客户端第一次请求的时候运行 仅在服务器中运行一次 2 init方法:客户端第一次访问服务器的时候在服务器中进行初始化 仅一次.并且可以通过config参数在 web.xml中通过(ke

servlet和普通类获取资源文件的方法

package cn.servlet.demo1; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.util.Properties; import javax.servlet

Java开发桌面程序学习(七)——ImageView设置图片以及jar包读取fxml文件

ImageView设置图片 JavaFx的ImageView,设置图片不能直接通过属性设置,只能通过代码来设置 ImageView设置图片 首先,我们让fxml对应的那个controller的java文件实现Initializable接口,之后就在复写的该接口的initialize方法中设置我们ImageView的图片 我的图片是放在了一个img文件夹里 之后,和之前的fxml一样,得去修改pom.xml,不然maven就会把img这个文件夹的内容全部忽略掉,之后就会找不到图片文件 @Overr

怎么替换jar包里面的文件?

很多时候,我们需要替换包含在jar包里面的文件,例如修改里面的配置文件. 由于jar包已经生成,在不想重新用eclipse导出的情况下,我们怎么修改jar包里面的文件呢? 其实说出来很简单,可以使用以下步骤: 1.用winrar打开jar包,例如: 2假设我们需要替换\META-INF\LICENSE文件,则编写好LICENSE文件后,将之拖拽到jar包的\META-INF\目录下. 就是鼠标左键点击一下文件,拖拽到目标区域! 一定还有江湖好汉问具体怎么拖拽?请参考百度网盘的[拖拽上传].QQ邮

查找jar包中.class文件关键字(变量名,字符串)

有时查看日志,常常会发现由框架底层打印的错误日志.要修改这个错误的时候,如果不是对框架特别熟悉,就需要按照可能产生这个错误日志的流程一步一步找,一时半会不一定能找到.比如本人最近对smartfoxserver搭建的服务器做压测的时候,发现最大等待线程数超过20就会打印错误日志,然后就一直在smartfoxserver接受请求的反编译代码里找该错误输出,花了很长时间一直没找到.然后我在想能否用inputstream来查询字符串,试验代码如下: import java.io.BufferedRead

J2EE之普通类加载web资源文件的方法

在WEB中普通类并不能像Servlet那样通过this.getServletContext().getResourceAsStream()获取web资源,需要通过类加载器加载,这里有两种方式,这两种方式是有区别的,下载咱们一起来看一下吧. 方法1. public class UserDao { public void connect() throws IOException { method1(); } private void method1() throws IOException { In