0

我正在使用 Apache Commons Compress 来压缩文件。如何将密码添加到存档中?

public static void main(String args[]) throws FileNotFoundException, IOException {
SevenZOutputFile sevenZOutput = new SevenZOutputFile(new File("outFile.7z"));
File entryFile = new File("D:/image.jpg");
SevenZArchiveEntry entry = sevenZOutput.createArchiveEntry(entryFile, entryFile.getName());
sevenZOutput.putArchiveEntry(entry);
FileInputStream in = new FileInputStream(entryFile);
                int len;
                byte buffer[] = new byte[8192];
                int transferedMegaBytes2=0;
                while ((len = in.read(buffer)) > 0) {
                    sevenZOutput.write(buffer, 0, len);                    
                    transferredBytes += len;
                    int transferedMegaBytes = (int) (transferredBytes / 1048576);                          
                    if(transferedMegaBytes>transferedMegaBytes2){
                    System.out.println("Transferred: " + transferedMegaBytes + " Megabytes.");
                    transferedMegaBytes2=transferedMegaBytes;
                    }
                }
sevenZOutput.closeArchiveEntry();
sevenZOutput.close();    
}
4

2 回答 2

0

恐怕不支持压缩。您可能想要使用这个JNI 包装器

如果你这样做,你可能会失去平台独立性。(他们说它是跨平台的,但我不会打赌)

于 2014-02-23T22:59:22.200 回答
0

我认为您不能使用 Commons Compress。从 Apache Commons Compress 站点的示例部分:

我们目前只提供对 lzma、arj、dump 和 Z 的读取支持。arj 只能读取未压缩的档案,7z 可以读取具有 7z 支持的许多压缩和加密算法的档案,但在写入档案时不支持加密。

于 2014-02-23T22:44:45.780 回答