Java-copyjar文件夹

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是

实际上我遇到了一个问题。我的应用程序包中有一个“.apk文件”。apk是一种jar文件(apk=Android包)。 我现在想把这个jar文件从我的程序复制到电脑上的任何其他位置。 通常情况下,我会使用:

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;
        }
    }