一、最近做项目的时候,师兄要求读取jar包里面的java文件。在网上查了各种文件以后,终于完成了,在这里和各位朋友分享一下。

  (一)找到jar包所在的位置。

     

String path="XXXXX";
File file=new File (path);

  (二)找到jar包所在的位置以后,通过JarFile这个类读取文档中的内容,获得所有的文件夹名字

  

                JarFile jarFile = new JarFile(new File(filePath));
Enumeration<JarEntry> entries = jarFile.entries(); while (entries.hasMoreElements()) { JarEntry entry = entries.nextElement();
String entryName = entry.getName();
            //读取文件后缀名为.java的文件
if (!entry.isDirectory() && entryName.endsWith(".java")) { 读取操作。。。。。。 } }

  三、获取jar包文件里面的文件IO流

  

//filePath是jar文件位置,name是jar文件里面文件的路径,相当于上面代码框中的entryName
public InputStream getJarInputStream(String filePath, String name)
throws Exception {
URL url = new URL("jar:file:" + filePath + "!/" + name);
JarURLConnection jarConnection = (JarURLConnection) url
.openConnection();
InputStream in = jarConnection.getInputStream(); return in;
}

  四、读取文件

public String readFile(String filePath, String entryName, Integer index) {
InputStream in = null;
BufferedReader br = null;
StringBuffer sb = null; try {
in = getJarInputStream(filePath, entryName);
br = new BufferedReader(new InputStreamReader(in, "UTF-8")); String con = null; sb = new StringBuffer();
while ((con = br.readLine()) != null) { if (before <= row && row < after) { sb.append(con);
}
} } catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (br != null)
br.close();
if (in != null)
in.close(); } catch (IOException e) {
e.printStackTrace();
}
} return sb.toString();
}

  注意:关闭IO流,在工作中是甲级错误

读取jar包里面的文件的更多相关文章

  1. java读取jar包中的文件

    随手写了一个java小工具,maven打包成功后,发现工具总是读不到打在jar包中的文件信息,要读取的文件位于 /src/main/resources 目录下,打包成功后,文件就在jar包中根目录下, ...

  2. 读取jar包内的文件内容

    package com.chanpion.boot; import org.springframework.util.ResourceUtils; import java.io.File; impor ...

  3. Java 操作jar包工具类以及如何快速修改Jar包里的文件内容

    需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件, ...

  4. Java如何快速修改Jar包里的文件内容

    需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件, ...

  5. SpringBoot读取war包jar包Resource资源文件解决办法

    SpringBoot读取war包jar包Resource资源文件解决办法 场景描述 在开发过程中我们经常会碰到要在代码中获取资源文件的情况,而我在最近在SpringBoot项目中时碰到一个问题,就是在 ...

  6. 如何读取jar包外的properties文件和log4j.properties

    http://jrails.iteye.com/blog/1705464 ***************************************' 一般在项目中使用properties配置文件 ...

  7. Jar中的Java程序如何读取Jar包中的资源文件

    Jar中的Java程序如何读取Jar包中的资源文件 比如项目的组织结构如下(以idea中的项目为例): |-ProjectName |-.idea/  //这个目录是idea中项目的属性文件夹 |-s ...

  8. 解决SpringBoot jar包中的文件读取问题

    前言 SpringBoot微服务已成为业界主流,从开发到部署都非常省时省力,但是最近小明开发时遇到一个问题:在代码中读取资源文件(比如word文档.导出模版等),本地开发时可以正常读取 ,但是,当我们 ...

  9. 读取Jar包中的资源问题探究

    最近在写一个可执行jar的程序,程序中包含了2个资源包,一个是images,一个是files.问题来了,在Eclipse里开发的时候,当用File类来获取files下面的文件时,没有任何问题.但是当程 ...

随机推荐

  1. Eclipse中搭建Python开发环境

    转载:http://www.cnblogs.com/realh/archive/2010/10/04/1841907.html Eclipse+PyDev环境搭建 1.准备工作 JDK6 Java 开 ...

  2. RedHat/CentOS发行版本号及内核版本号对照表

    RedHat/CentOS发行版本号及内核版本号对照表 : Redhat 9.0———————————————2.4.20-8RHEL 3 Update 8————————————2.4.21-47R ...

  3. 贴片陶瓷电容的NPO、C0G、X7R、X5R、Y5V、Z5U辨析

    NPO与X7R.X5R.Y5V.Z5U神马的有啥区别?主要是介质材料不同.不同介质种类由于它的主要极化类型不一样,其对电场变化的响应速度和极化率亦不一样. 在相同的体积下的容量就不同,随之带来的电容器 ...

  4. QCombobox设置下拉框的宽度

    这几天写一个项目,里面用到qcombobox组件,其中下拉框含有129个子项,所以在点击的时候,一个下拉框就将整个电脑屏幕给占满了,很不好看并且在使用中会造成很大的苦恼.其实我就是想设置一个下拉框最大 ...

  5. linux之iptable

    转自:http://seanlook.com/2014/02/23/iptables-understand/ 一. netfilter与iptables Netfilter是由Rusty Russel ...

  6. entity framework 中一些常用的函数 转自http://www.cnblogs.com/williamzhu/

    一般查询 var Courses = db.Courses.Where(c => c.Title == "Physics").OrderBy(c => c.Title) ...

  7. (转)openURL的使用方法

    view plaincopy to clipboardprint? [[UIApplication sharedApplication] openURL:[NSURL URLWithString:ap ...

  8. git学习基础教程

    分享一个git学习基础教程 http://pan.baidu.com/s/1o6ugkGE 具体在网盘里面的内容..需要的学习可以直接下.

  9. BZOJ 1005: [HNOI2008]明明的烦恼( 组合数学 + 高精度 )

    首先要知道一种prufer数列的东西...一个prufer数列和一颗树对应..然后树上一个点的度数-1是这个点在prufer数列中出现次数..这样就转成一个排列组合的问题了.算个可重集的排列数和组合数 ...

  10. UVa 1658 Admiral(最小费用最大流)

    拆点费用流 --------------------------------------------------------------------- #include<cstdio> # ...