如何从byte []创建内部JarFile对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从byte []创建内部JarFile对象相关的知识,希望对你有一定的参考价值。
我想检查我正在处理的程序的更新,为此我下载了JarFile并将其写入计算机内存。现在我不知道如何将在此过程中创建的byte []转换为JarFile对象。
那么如何将这个byte []转换成一个JarFile对象呢?所以我可以在Jar中读取包含版本号的文件?
答案
不要将文件读入内存。只需使用jar URL直接阅读该版本:
String version;
URL versionFile = new URL("http://www.example.com/app/latestversion.jar!/com/example/app/version.txt");
try (BufferedReader versionReader = new BufferedReader(
new InputStreamReader(versionFile.openStream(), StandardCharsets.UTF_8))) {
version = versionReader.readLine();
}
如果您正在从.jar文件的清单中读取版本,则可以使用JarInputStream而不是JarFile:
String version;
URL jarLocation = new URL("http://www.example.com/app/latestversion.jar");
try (JarInputStream jarStream = new JarInputStream(jarLocation.openStream())) {
version = jarStream.getManifest().getMainAttributes().getValue(
Attributes.Name.SPECIFICATION_VERSION);
}
以上是关于如何从byte []创建内部JarFile对象的主要内容,如果未能解决你的问题,请参考以下文章
如何从 python 3 中的 for 循环内部增加迭代器?
从byte []创建com.lowagie.text.Image的实例
如何编写代码以通过 SPI 主机将数据从内部存储器传输到 2 个从机