2013-04-19 2 views
0

У меня есть файл, скажем C:\source.dat. Я хочу сжать его в zip-файл C:\folder\destination.zip.Как использовать TrueZip для сжатия файлов?

Я не могу найти простой пример, и HelloWorld, предоставляемый проектом Maven, на самом деле не применяется в моем случае, потому что я не пишу текстовый файл, поэтому, надеюсь, кто-то может просветить меня по этому поводу.

Для справки, приведенный в примере:

@Override 
protected int work(String[] args) throws IOException { 
    // By default, ZIP files use character set IBM437 to encode entry names 
    // whereas JAR files use UTF-8. 
    // This can be changed by configuring the respective archive driver, 
    // see Javadoc for TApplication.setup(). 
    final Writer writer = new TFileWriter(
      new TFile("archive.zip/dir/HälloWörld.txt")); 
    try { 
     writer.write("Hello world!\n"); 
    } finally { 
     writer.close(); 
    } 
    return 0; 
} 
+1

* «Проект на самом деле не применим в моем случае (а не в текстовом файле)» * «И что? Вы на самом деле * попробовали * пример с текстовым файлом? –

+0

@AndrewThompson Да, но поскольку HelloWorld использует Writer для прямого ввода текста в запись. В моем случае, потому что я не работаю с текстовыми файлами, я, очевидно, не могу сделать то же самое. – ohseekay

+0

Было бы удобно упомянуть эту информацию (в вопросе), так как мы не психические .. –

ответ

3

Это так просто, как это:

new TFile("source.dat").cp(new TFile("destination.zip/source.dat")); 

Для получения дополнительной информации, пожалуйста, обратитесь к Javadoc для класса TFile в http://truezip.java.net/apidocs/de/schlichtherle/truezip/file/TFile.html.

Возможно, вы также захотите попробовать файл TrueType Archetype File *, который вводится в http://truezip.java.net/kick-start/index.html. Архетип генерирует множество примеров программ, которые вы должны изучить, чтобы понять API.

1

Это прямо вперед, что нужно сделать.

Использование

1. ZipOutputStream - Этот класс Java Этот класс реализует фильтр выходной поток для записи файлов в формате ZIP файла. Включает поддержку как сжатых, так и несжатых записей.

Offical Docs

http://docs.oracle.com/javase/6/docs/api/java/util/zip/ZipOutputStream.html

2. ZipEntry - Это Этот класс используется для представления записи ZIP файлов.

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/zip/ZipEntry.html

import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.util.zip.ZipEntry; 
import java.util.zip.ZipOutputStream; 

public class ConverToZip { 

    public static void main(String[] args) { 
     // Take a buffer 
     byte[] buffer = new byte[1024]; 

     try { 

      // Create object of FileOutputStream 

      FileOutputStream fos = new FileOutputStream("C:\\folder\\destination.zip."); 

      // Get ZipOutstreamObject Object 
      ZipOutputStream zos = new ZipOutputStream(fos); 


      ZipEntry ze = new ZipEntry("source.dat"); 
      zos.putNextEntry(ze); 
      FileInputStream in = new FileInputStream("C:\\source.dat"); 

      int len; 
      while ((len = in .read(buffer)) > 0) { 
       zos.write(buffer, 0, len); 
      } 

      in .close(); 
      zos.closeEntry(); 

      //remember close it 
      zos.close(); 

      System.out.println("Done"); 

     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 
+0

Я действительно имею в виду TrueZip здесь, но спасибо за ваш ответ в любом случае! – ohseekay

+0

@ohseekay Ohhh Извините, но я пропустил это. В любом случае, я не знаю много об истине. –