Jar文件JarFile的读写操作
来源:互联网 发布:java获取小数点后两位 编辑:程序博客网 时间:2024/06/06 19:26
摘自:点击打开链接
JAR文件是打包基于JAVA技术的解决方案的标准方法。它允许开发者将所有相关内容(.class、图片、声音、及所有支持的文件)打包到一个文件中。JAR格式支持压缩、认证、版本号及其他很多特性。
JAR文件提供一种将多个文件打包到一个文件中的方法,其中每一个文件可能独立地被压缩。JAR文件所增加的内容是manifest,它允许开发者可以提供附加的关于内容的信息。例如,manifest表明JAR文件中的哪个文件是用来运行一个程序的,或者库的版本号等。
所需要的类文件位于java.util.jar包中。这里主要的类是JarFile,它是.jar文件自身的一个引用。较大文件中的每一个单独的文件是通过一个JarEntry引用的。
首先,通过把将JAR文件位置传给构造函数,创建一个JarFile的实例,位置可能是String或File的形式,如下: JarFile jarFile = new JarFile("thefile.jar"); 或者: File file = new File("thefile.jar"); JarFile jarFile = new JarFile(file);当你有了该JAR文件的一个引用之后,你就可以读取其文件内容中的目录信息了。JarFile的entries方法返回所有entries的枚举集合(Enumeration)。通过每一个entry,你可以从它的manifest文件得到它的属性,任何认证信息,以及其他任何该entry的信息,如它的名字或者大小等。
TreeMap<String, JarEntry> byName = new TreeMap<String, JarEntry>(); for (Enumeration<JarEntry> e = jarFile .entries(); e.hasMoreElements(); ) { JarEntry entry = e.nextElement(); byName.put(entry.getName(), entry); }每一个entries是一个JarEntry。该类有getName,getSize,getCompressedSize等方法。
为了从JAR文件中真正读取一个指定的文件,你必须到其entry的InputStream。这和JarEntry不一样。这是因为JarEntry只是包含该entry的有关信息,但是并不实际包含该entry的内容。这和File和FileInputStream的区别有点儿相似。访问文件没有打开文件,它只是从目录中读取了该文件的信息。下面是如何得到entry的InputStream:
InputStream input = jarFile.getInputStream(entry);
当你有了输入流,你就可以像读取其他流一样读取它。在文本流中(text stream),记得使用读取器(Reader)从流中取得字符。对于面向字节的流,如图片文件,直接读取就行了。
1 0
- Jar文件JarFile的读写操作
- jarFile读取jar文件内容
- jar文件的复制和解压(JarInputStream,JarOutputStream和JarFile)
- EAR、JAR文件的读写
- 文件的读写操作
- 文件的读写操作
- 文件的读写操作
- 文件的读写操作
- 文件的读写操作
- 读写文件的操作
- 文件的读写操作
- 文件的读写操作
- 文件的读写操作
- 文件的读写操作
- 【文件的读写操作】
- 文件的读写操作
- 读写文件的操作
- JarFile解析jar文件。获取jar中后缀为class文件路径
- 安卓应用安装,卸载,启动,分享,创建桌面快捷图标
- linux 下使用man查看命令帮助时 [] <>什么含义
- gradle maven私服构建aar
- RSC-010, ERROR, [Reference to non-standard resource type found.]
- asp中文乱码
- Jar文件JarFile的读写操作
- 红包
- linux中内存泄漏的检测(三)定制化的new/delete
- Arch Linux安装笔记(3)图形界面篇
- 应该为自己整包而努力了,固定项目来源需要整包的能力
- CTCI系列--1.1 判断一个字符串中的字符是否唯一(C语言)
- Java Character类
- ARM启动文件2440init.s分析
- struts2框架架构流程