Java - 复制Jar文件夹

时间:2010-04-19 18:59:17

标签: java android jar getresource

其实我遇到了一个问题。我的应用程序的一个包中有一个“.apk-File”。 apk是一种jar文件(apk = Android软件包)。 我现在想把这个jar文件从我的Programm复制到PC上的任何其他位置。 通常我会这样做:

FileInputStream is = new FileInputStream(this.getClass().getResource("/resources/myApp.apk").getFile());

然后使用FileOutputStream将其写在磁盘上。 ...但是因为.apk是一种.jar它不起作用。它只是复制.apk文件。但没有包含其他文件。

任何帮助将不胜感激

2 个答案:

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