jarFile

 
今天做的和jar文件有关。。。第一次用结果吃药了。
从一个jar文件读取内容,然后写回一个jar文件。
要点是首先通过一个JarFile file = new JarFile(fileName);,然后file.entries()可以得到一个jar文件内部元素的迭代器。同过这个迭代器我们可以获得所有的JarEntry。
然后通过InputStream is = jarFile.getInputStream(jarEntry);可以获得这个JarEntry的输入流。
最后将is的内容同过JarOutputStream out = new JarOutputStream(new FileOutputStream(distJar));的out的out.write(int data)方法写入目标jar文件。
最后要把out给close掉否则尾部校验码将不会被加上。
现在的东西是从rss组成的导航树上的某个节点开始把以下所有索引和文件爬到本地,在用正则表达式剥出URL当中最后的名字作为本地名以及用MD5处理下URL作为本地名时犹豫了一下,觉得还是MD5比较爽不会重。
今天服务器的svn彻底配好了,已经可以通过那只乌龟访问了。
小周周吃了不知道啥月饼结果倒在了洗手间里,今天没有来上班。
今天很累很热很饿,但是心情很好。从火星回来后人的状态一直不错。希望继续保持下去,哇咔咔咔!
### 使用 Java 中的 JarFile 类 `JarFile` 是 `java.util.zip` 包中的一个类,用于表示 JAR 文件并允许访问其中的内容。以下是关于如何使用 `JarFile` 的详细介绍。 #### 创建 JarFile 对象 要创建一个 `JarFile` 实例,可以传递 JAR 文件的路径作为参数给其构造函数。例如: ```java import java.util.jar.JarFile; try (JarFile jarFile = new JarFile("example.jar")) { // 访问 JAR 文件内容的操作 } catch (Exception e) { e.printStackTrace(); } ``` 此代码片段展示了如何打开名为 `example.jar` 的 JAR 文件,并将其封装在一个尝试资源声明 (`try-with-resources`) 中以确保文件被正确关闭[^4]。 #### 列出 JAR 文件中的条目 一旦有了 `JarFile` 对象,就可以通过调用 `entries()` 方法来获取该 JAR 文件中所有条目的枚举器。下面是一个例子: ```java import java.util.Enumeration; import java.util.jar.JarEntry; import java.util.jar.JarFile; try (JarFile jarFile = new JarFile("example.jar")) { Enumeration<JarEntry> entries = jarFile.entries(); while (entries.hasMoreElements()) { JarEntry entry = entries.nextElement(); System.out.println(entry.getName()); } } catch (Exception e) { e.printStackTrace(); } ``` 这段代码打印出了 `example.jar` 文件内的每一个条目名称[^5]。 #### 读取特定条目数据 如果想从 JAR 文件里提取某个具体条目,则可以通过它的名字得到对应的 `InputStream` 流对象。如下所示: ```java import java.io.InputStream; import java.util.jar.JarFile; import java.util.jar.JarEntry; try (JarFile jarFile = new JarFile("example.jar")) { JarEntry entry = jarFile.getJarEntry("path/to/resource.txt"); try (InputStream inputStream = jarFile.getInputStream(entry)) { int data; while ((data = inputStream.read()) != -1) { System.out.print((char)data); } } } catch (Exception e) { e.printStackTrace(); } ``` 这里展示的是怎样定位到名为 `"path/to/resource.txt"` 的条目,并逐字节地输出它所包含的数据流[^5]。 --- ### 注意事项 当处理大型或者复杂的 JAR 文件时需要注意性能问题;另外,在实际应用开发过程中也应考虑异常情况的发生,比如目标文件不存在等情况都需要妥善管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值