java 从jar中读取文件 三种方法<Enumeration>
2012-12-28 14:55
477 查看
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
Java代码
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 文件列表及各项的名称、大小和压缩后的大小
Java代码
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中 文件的内容
Java代码
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();
}
}
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
Java代码
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 文件列表及各项的名称、大小和压缩后的大小
Java代码
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中 文件的内容
Java代码
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读取TXT文件方法,和检索链接<a>[url]
- 读取xml文件转成List<T>对象的两种方法(附源码)
- 读取xml文件转成List<T>对象的两种方法
- JavaWeb 从init-param中读取多重数据(Enumeration<String>)
- <Java>使用String读取文件名称获取得定位置的字符串
- 读取xml文件转成List<T>对象的两种方法
- java 循环读取Map<String, String> 里面值
- java读取jar包中的资源文件或properties配置文件路径的方法
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的三种方法
- Java接口中的变量和方法默认的类型<转>
- . <WP7>读取工程中的一个文件内容
- Java<>泛型方法
- Android-->AndroidManifest.xml 文件 <meta-data> 使用方法
- Socket:java与C之间的文件传送<1>(C语言之间的通信)
- Socket:java与C之间的文件传送<4>(JAVA与C通信)
- 无法读取项目文件"" 请确认 <Import> 声明中的路径正确,且磁盘上存在该文件
- Android 将List<Bean>数据写入文件,从文件中读取;以及多个 Activity 的退出方法
- JAVA IO流 <一>文件基本操作
- 读取文件之<绝对路径>与<相对路径>