我一直用我的zip提取器得到java.io.FileNotFoundException

时间:2014-01-08 09:39:31

标签: java file exception

有没有人可以帮助我使用我的java zip提取器,如标题中所述我一直在文件夹中包含java.io.FileNotFoundException

public void UnZip() {
    try {
        byte[] data = new byte[1000];
        int byteRead;

        BufferedOutputStream bout = null;
        ZipInputStream zin = new ZipInputStream(new BufferedInputStream(new FileInputStream(sourceFile)));
        ZipEntry entry;
        while ((entry = zin.getNextEntry()) != null) {
            String filename = entry.getName();
            File newfile = new File(Deobf2 + File.separator + filename);

            System.out.println("file unzip : " + newfile.getAbsoluteFile());

            new File(newfile.getParent()).mkdirs();

            FileOutputStream fos = new FileOutputStream(newfile);

            int len;
            while ((len = zin.read(data)) > 0) {
                fos.write(data, 0, len);
            }

            fos.close();
            entry = zin.getNextEntry();
        }
        zin.closeEntry();
        zin.close();

        System.out.println("Done");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

错误日志 http://pastebin.com/crMKaa37

static String tempDir = System.getProperty("java.io.tmpdir");
public static File Deobf = new File(tempDir + "Deobf");
public static String Deobf2 = Deobf.toString();

整个代码粘贴 http://pastebin.com/1vTfABR1

3 个答案:

答案 0 :(得分:0)

我有复制粘贴相同的代码,它工作正常。我想你没有C盘的管理员权限。以管理员身份登录并运行。它会工作。 如果您对C驱动器没有管理员级别的权限,则会出现拒绝访问异常。

答案 1 :(得分:0)

问题是你在做什么

String Deobf2 = Deobf.toString();//this does not give the location of the file

使用

file.getAbsolutePath();

在您的情况下Deobf.getAbsolutePath();

代替。检查http://www.mkyong.com/java/how-to-get-the-filepath-of-a-file-in-java/ 如果您只想获取路径,直到父目录检查此How to get absolute path of directory of a file?

答案 2 :(得分:0)

问题修复了一些代码 对于任何想要获得工作拉链提取代码副本的人来说,http://pastebin.com/bXL8pUSg zip输出中的变量Deobf2