Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Apache Commons Compress创建gzip存档_Java_Compression_Gzip_Archive_Apache Commons - Fatal编程技术网

Java 使用Apache Commons Compress创建gzip存档

Java 使用Apache Commons Compress创建gzip存档,java,compression,gzip,archive,apache-commons,Java,Compression,Gzip,Archive,Apache Commons,我成功地创建了具有预期内容的gz存档,但是如何在存档中设置文件名 我的意思是,如果创建了archivemyfile.gz,则其中的文件将命名为“myfile”,但我想将其命名为源文件,例如,“1.txt” 当前代码: public static void gz() throws FileNotFoundException, IOException { GZIPOutputStream out = null; String filePaths[] = {"C:/Temp/1.tx

我成功地创建了具有预期内容的
gz
存档,但是如何在存档中设置文件名

我的意思是,如果创建了archive
myfile.gz
,则其中的文件将命名为“
myfile
”,但我想将其命名为源文件,例如,“
1.txt

当前代码:

public static void gz() throws FileNotFoundException, IOException {
    GZIPOutputStream out = null;
    String filePaths[] =  {"C:/Temp/1.txt","C:/Temp/2.txt"}; 
    try {
         out = new GZIPOutputStream(
              new BufferedOutputStream(new FileOutputStream("C:/Temp/myfile.gz")));

            RandomAccessFile f = new RandomAccessFile(filePaths[0], "r");
            byte[] b = new byte[(int)f.length()];
            f.read(b);
            out.write(b, 0, b.length);

            out.finish();
            out.close();
    } finally {
         if(out != null) out.close();
    }
}

GZip压缩流。通常,当人们对多个文件使用GZip时,他们也会使用tar将它们咀嚼在一起。
GZip压缩流。通常,当人们对多个文件使用GZip时,他们也会使用tar将它们咀嚼在一起。

感谢您的回复,但我不想知道如何在一个gzip存档中添加多个文件,但是否可以在gz存档中重命名流。Like归档文件名是:“myarch.gz”,但在归档文件名内流式传输,如“iTextFile.txt”。不幸的是,您不能。它是一个字节流。里面没有名字。谢谢你的回复,但我不想知道如何在一个gzip存档中添加多个文件,但是否可以在gz存档中重命名流。Like归档文件名是:“myarch.gz”,但在归档文件名内流式传输,如“iTextFile.txt”。不幸的是,您不能。它是一个字节流。里面没有名字。