Есть несколько проблем с вашим кодом: где объявлен outPut?output
- это не файл, а строка, поэтому exists()
и mkdir()
не существуют.Начните с объявления output
как:
File output = new File("C:/1100");
Более того, outPut
(с большим P) не объявлено.Это может быть что-то вроде output + File.seprator + zipEntry.getName()
.
bos = new BufferedOutputStream(new FileOutputStream(output + File.seprator + zipEntry.getName()));
Обратите внимание, что вам не нужно передавать File в FileOutputStream, как показывают конструкторы в документации .
На этом этапе ваш код должен работать, если ваш Zip-файл не содержит директории.Однако при открытии выходного потока, если zipEntry.getName () имеет компонент каталога (например, somedir/filename.txt
), открытие потока приведет к FileNotFoundException
, так как родительский каталог файла, который вы пытаетесь создать, не делаетсуществовать.Если вы хотите иметь возможность обрабатывать такие zip-файлы, вы найдете ответ в: Как рекурсивно разархивировать файлы в Java?