2016-10-20 2 views
0

У меня есть следующий java-метод, который я пытаюсь использовать для создания zip-файла, в котором есть существующий файл, написанный на нем (zip-файл имеет то же имя, только с .log расширение заменено на .zip). Zip-файл создается успешно, однако он не находится внутри него, когда он завершается.Java не пишет в zip-файл

Вот мой код:

private static void zipFile(File fileToZip) { 

    final int bufferSize = 2048; 
    File zipFile = new File(fileToZip.getAbsolutePath().replaceAll(".log", ".zip")); 

    try (FileOutputStream fos = new FileOutputStream(zipFile.getAbsolutePath()); 
      FileInputStream fis = new FileInputStream(fileToZip); 
      ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(fos)); 
      BufferedInputStream origin = new BufferedInputStream(fis, bufferSize)) { 

     ZipEntry ze = new ZipEntry(fileToZip.getAbsolutePath()); 
     zos.putNextEntry(ze); 
     byte[] data = new byte[bufferSize]; 
     int count; 
     while ((count = origin.read(data, 0, bufferSize)) != -1) { 
      LOGGER.info("WRITING!!!"); 
      zos.write(data, 0, count); 
     } 
     zos.closeEntry(); 

    } catch (IOException e) { 
     LOGGER.error("Error: ", e); 
    } 

} 

Любые идеи? :)

+0

работает для меня, хотя, используя абсолютный путь к файлу является странный выбор. –

ответ

2

Изменить

ZipEntry ze = new ZipEntry(fileToZip.getAbsolutePath()); 

в

ZipEntry ze = new ZipEntry(fileToZip.getName()); 
+0

Спасибо, сэр! :) – Pete

Смежные вопросы