2010-04-19 87 views
0

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

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

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

任何帮助,将不胜感激

回答

1

由于.apk.jar文件的另一个名字(换句话说,它是与在配置文件存储在目录中的一些具体定义一个zip文件),然后看ZipInputStream到阅读文件并浏览内容并将其作为文件写出。

0

非常感谢您伊沙伊......这是我在等待:) 也许提示是某人在那里,谁需要做同样的事情,所以...这里是我的代码:

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