Java-copyjar文件夹
实际上我遇到了一个问题。我的应用程序包中有一个“.apk文件”。apk是一种jar文件(apk=Android包)。 我现在想把这个jar文件从我的程序复制到电脑上的任何其他位置。 通常情况下,我会使用:Java-copyjar文件夹,java,android,jar,getresource,Java,Android,Jar,Getresource,实际上我遇到了一个问题。我的应用程序包中有一个“.apk文件”。apk是一种jar文件(apk=Android包)。 我现在想把这个jar文件从我的程序复制到电脑上的任何其他位置。 通常情况下,我会使用: FileInputStream is = new FileInputStream(this.getClass().getResource("/resources/myApp.apk").getFile()); 然后使用FileOutputStream将其写入磁盘。 ... 但是由于.apk是
FileInputStream is = new FileInputStream(this.getClass().getResource("/resources/myApp.apk").getFile());
然后使用FileOutputStream将其写入磁盘。
... 但是由于.apk是一种.jar,所以它不起作用。它只是复制.apk文件。但不包含其他文件
任何帮助都将不胜感激,因为
.apk
是另一个名称的.jar
文件(换句话说,它是一个zip文件,具有配置文件在目录中存储位置的特定定义)然后阅读文件,浏览内容并将其作为文件写出。非常感谢您的帮助。。。这就是我一直在等待的提示:)
可能是某人在那里,他需要做同样的事情,因此。。。这是我的密码:
public static boolean copyApkFile(File outputFile){
try {
FileInputStream fis = new FileInputStream(this.getClass().getResource("/resources/myApkFile.apk").getFile());
ZipInputStream zis = new ZipInputStream(fis);
FileOutputStream fos = new FileOutputStream(outputFile));
ZipOutputStream zos = new ZipOutputStream(fos);
ZipEntry ze = null;
byte[] buf = new byte[1024];
while ((ze = zis.getNextEntry()) != null) {
System.out.println("Next entry "+ze.getName()+" "+ze.getSize());
zos.putNextEntry(ze);
int len;
while ((len = zis.read(buf)) > 0) {
zos.write(buf, 0, len);
}
}
zos.close();
fos.close();
zis.close();
fis.close();
return true;
} catch (IOException ex) {
Logger.getLogger(SetUpNewDevice.class.getName()).log(Level.SEVERE, null, ex);
return false;
}
}