java 从jar中读取文件 三种方法<Enumeration>
来源:互联网 发布:成都软件开发 编辑:程序博客网 时间:2024/06/07 23:36
- Sample1-利用Manifest文件读取jar中的文件
1.文件目录
test--
--a.text
--b.gif
2. Menifest文件内容:
Manifest-Version: 1.0
abc: test/a.txt
iconname: test/Anya.jpg
注意:manifest.mf文件最后一行要打一回车
Another Notification:
如果manifest文件内容是:
Manifest-Version: 1.0
Main-Class: com.DesignToolApp
Class-path: lib/client.jar lib/j2ee.jar
在MANIFEST.MF文件的最后,要留两个空行(也就是回车),才可以识别到Class-Path这一行,如果只有一个空行,那么只识别到Main- Class这一行。Class-Path中的库名用空格格开,使用和jar包相对的路径,发布时把jar包和其他用到的类库一起交给用户就可以了。
3.打jar包
test.jar
- String iconpath = jar.getManifest().getMainAttributes().getValue("abc");
- InputStream in = jar.getInputStream(jar.getJarEntry(iconpath));
- //Image img = ImageIO.read(in);
- InputStreamReader isr = new InputStreamReader(in);
- BufferedReader reader = new BufferedReader(isr);
- String line;
- while ((line = reader.readLine()) != null) {
- System.out.println(line);
- }
- reader.close();
- Sample2,读取JAR 文件列表及各项的名称、大小和压缩后的大小
- public class JarFileInfoRead {
- public static void main (String args[]) throws IOException {
- String jarpath="d://temp//test.jar";
- JarFile jarFile = new JarFile(jarpath);
- Enumeration enu = jarFile.entries();
- while (enu.hasMoreElements()) {
- process(enu.nextElement());
- }
- }
- private static void process(Object obj) {
- JarEntry entry = (JarEntry)obj;
- String name = entry.getName();
- long size = entry.getSize();
- long compressedSize = entry.getCompressedSize();
- System.out.println(name + "\t" + size + "\t" + compressedSize);
- }
- }
- Sample3,读取JAR中 文件的内容
- public class JarFileRead {
- public static void main (String args[])
- throws IOException {
- String jarpath="d://temp//test.jar";
- JarFile jarFile = new JarFile(jarpath);
- Enumeration enu = jarFile.entries();
- while (enu.hasMoreElements()) {
- JarEntry entry = (JarEntry)enu.nextElement();
- String name = entry.getName();
- //System.out.println(name);
- if(name.equals("test/a.txt")){
- InputStream input = jarFile.getInputStream(entry);
- process(input);
- }
- }
- jarFile.close();
- }
- private static void process(InputStream input)
- throws IOException {
- InputStreamReader isr =
- new InputStreamReader(input);
- BufferedReader reader = new BufferedReader(isr);
- String line;
- while ((line = reader.readLine()) != null) {
- System.out.println(line);
- }
- reader.close();
- }
- }
- java 从jar中读取文件 三种方法<Enumeration>
- java 从jar中读取文件 三种方法<Enumeration>
- 从Java档案(JAR)中读取文件
- 从 Java 档案 (JAR) 中读取文件
- 从 Java 档案(JAR) 中读取文件
- 从Java档案(JAR)中读取文件
- 从 Java 档案 (JAR) 中读取文件
- java中从控制台读取输入的三种方法
- java从文件中读取内容方法
- java 从jar包中读取资源文件
- 从Java的jar文件中读取数据
- java 从jar包中读取资源文件
- java 从jar包中读取资源文件
- java 从jar包中读取资源文件
- java 从jar包中读取资源文件
- JAVA从jar包中读取资源文件
- java 从jar包中读取资源文件
- java 从jar包中读取资源文件
- Objective C内存管理——如何理解autorelease
- C++ Internals: VC RTTI - 基本数据结构
- JavaScript中的try...catch和异常处理
- div限制字数
- hp-ux下磁盘配额攻略
- java 从jar中读取文件 三种方法<Enumeration>
- ps和top
- linux下的字符设备驱动
- 成绩处理改进错误的地方是标准差的函数
- 【在线应用】全新的视觉盛宴——"动态影像服务目录 "
- Javascript学习系列(四):Javascript中最常用的61个经典技巧
- Linux设置环境变量小结
- Android Handler的使用2
- C++ Internals: VC RTTI - typeid