其实我遇到了一个问题。我的应用程序的一个包中有一个“.apk-File”。 apk是一种jar文件(apk = Android软件包)。 我现在想把这个jar文件从我的Programm复制到PC上的任何其他位置。 通常我会这样做:
FileInputStream is = new FileInputStream(this.getClass().getResource("/resources/myApp.apk").getFile());
然后使用FileOutputStream将其写在磁盘上。 ...但是因为.apk是一种.jar它不起作用。它只是复制.apk文件。但没有包含其他文件。
任何帮助将不胜感激
答案 0 :(得分:1)
由于.apk
是另一个名称的.jar
文件(换句话说,它是一个zip文件,其中包含配置文件存储在目录中的某些特定定义),请查看{{3}读取文件并浏览内容并将其作为文件写出来。
答案 1 :(得分:0)
非常感谢Yishai ......这是我正在等待的提示:) 可能是那里,谁需要做同样的事情,因此......这是我的代码:
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;
}
}