2012-06-04 7 views
10

Ich habe versucht zu suchen und konnte nichts finden. Was ich versuche, ist, dass ich eine Liste durchsuche, in der ich eine Zeichenfolge aus einer Kombination von Elementen aus mehreren Listen konstruiere. Ich möchte dann diese Zeichenfolgen in eine gezippte Datei ausgeben. Ich habe es funktioniert, indem ich es einfach in eine ASCII-Textdatei ablege, aber ich kann es nicht scheinen, es mit dem gzipoutputstream zu arbeiten. Also im GrundeString zu GZIPOutputStream

Schleife String Dump-String erstellen Datei endloop

Wenn möglich gzipped, würde Ich mag auf eine einfache Textdatei vermeiden Dumping dann, da diese Dateien Gzipping es wird fast 100 meg jeder sein .

+2

Bitte zeigen Sie uns den Code, den Sie versucht haben, wie es nicht funktioniert, usw. –

Antwort

16

Ja, das ist kein Problem. Sie müssen nur einen Writer verwenden, um von Ihren zeichenbasierten Strings in den bytebasierten gzip-Stream zu konvertieren.

BufferedWriter writer = null; 
    try { 
     GZIPOutputStream zip = new GZIPOutputStream(
      new FileOutputStream(new File("tmp.zip"))); 

     writer = new BufferedWriter(
      new OutputStreamWriter(zip, "UTF-8")); 

     String[] data = new String[] { "this", "is", "some", 
      "data", "in", "a", "list" }; 

     for (String line : data) { 
      writer.append(line); 
      writer.newLine(); 
     } 
    } finally {   
     if (writer != null) 
      writer.close(); 
    } 

Denken Sie auch daran gzip nur einen Strom komprimiert, wenn Sie eingebettete Dateien möchten, finden Sie in diesem Beitrag: gzip archive with multiple files inside