Java获取jar中的文件
发布日期:2021-05-07 20:55:00 浏览次数:21 分类:精选文章

本文共 1655 字,大约阅读时间需要 5 分钟。

一、获取自身中的文件(以jar运行的程序)

public class Application {       public static void main(String[] args) throws IOException {       	// fileName是在当前类路径中的一个文件        InputStream in = Application.class.getResourceAsStream("fileName");        if (null != in) {               File file = new File("D:\\fileName");            OutputStream out = new FileOutputStream(file);            byte[] bytes = new byte[1];            while (in.read(bytes) != -1) {                   out.write(bytes);            }            out.flush();        }    }}

二、获取当前运行jar的路径

public String getPath() {   	String path;	URL url = this.getClass().getProtectionDomain().getCodeSource().getLocation();	URLConnection connection = url.openConnection();	if(connection instanceof JarURLConnection) {   		JarFile jarFile = ((JarURLConnection) connection).getJarFile();		path = jarFile.getName();		int separator = path.indexOf("!/");		if (separator > 0) {   			path = path.substring(0, separator);		}	} else {   		path = url.getPath();	}	return path;}

三、获取其他jar中的文件

从一个jar文件读取内容,然后写回一个jar文件。

首先通过一个JarFile file = new JarFile(fileName);
然后file.entries()可以得到一个jar文件内部元素的迭代器。同过这个迭代器我们可以获得所有的JarEntry,
然后通过InputStream in = jarFile.getInputStream(jarEntry);可以获得这个JarEntry的输入流。
最后将is的内容同过JarOutputStream out = new JarOutputStream(new FileOutputStream(distJar));的out的out.write(int data)方法写入目标jar文件。

JarFile file = new JarFile(fileName)Enumeration
enumeration = jarFile.entries();while(enumeration.hasMoreElements()) { JarEntry jarEntry = enumeration.nextElement(); InputStream in = jarFile.getInputStream(jarEntry)}

四、给jar写入文件

OutputStream out = new JarOutputStream(new FileOutputStream(path));
上一篇:C语言main方法中的参数
下一篇:AngularJS ng-class、ng-style

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月06日 12时05分27秒