
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)Enumerationenumeration = jarFile.entries();while(enumeration.hasMoreElements()) { JarEntry jarEntry = enumeration.nextElement(); InputStream in = jarFile.getInputStream(jarEntry)}
四、给jar写入文件
OutputStream out = new JarOutputStream(new FileOutputStream(path));
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月06日 12时05分27秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
按位与、或、非、异或总结
2021-05-08
TCP心跳检测包
2021-05-08
01 背包问题
2021-05-08
JVM - 参数配置影响线程数
2021-05-08
idea如何导入一个maven项目
2021-05-08
在 springboot 项目中全局处理异常
2021-05-08
ILI9341几个重要的命令
2021-05-08
AD如何对原理图进行注释
2021-05-08
力扣:地图分析(多源bfs)
2021-05-08
NC15136: 迷宫
2021-05-08
动态点击a标签
2021-05-08
@RequestBody和@RequestParam
2021-05-08
oracle创建序列语法
2021-05-08
springboot通过控制层跳转页面404
2021-05-08
idea2020 没有 tomcat server
2021-05-08
jq动态修改元素的onclick属性的值
2021-05-08
为什么讨厌所谓仿生AI的说法
2021-05-08
ORACLE 客户端工具
2021-05-08
Elasticsearch下载慢?分享百度云下载-ELK
2021-05-08