用Java编写未知(大)大小的Tar文件

时间:2012-05-08 14:52:15

标签: java tar

我想用Java中的tar文件写一个未知大小的大流。我知道Apache有commons compress library handles tar files,但是他们要求我提前知道它的大小。考虑Apache自己的example

TarArchiveEntry entry = new TarArchiveEntry(name);
entry.setSize(size);
tarOutput.putArchiveEntry(entry);
tarOutput.write(contentOfEntry);
tarOutput.closeArchiveEntry();

我写完后会知道条目的大小,但之前不会知道。是不是我可以写内容的方式,当我完成大小然后写入标题?

2 个答案:

答案 0 :(得分:1)

我最终选择了jtar并对其进行了修改,因此您不必在写完之后指定大小。似乎没有包本可以原生地执行此操作...我设置了issue请求此更改。不幸的是,它需要很多丑陋的代码并创建我自己的RandomAccessFileInputStream(),这不适合上传补丁。

答案 1 :(得分:1)

如果您只添加了一个文本文件,则可以使用setSize(long)方法并设置条目的大小。

其中data是您希望被涂焦的字符串。

long size=data.getByte().length;
TarArchiveEntry entry = new TarArchiveEntry("sample.txt");
entry.setSize(size);
tarOutput.putArchiveEntry(entry);
tarOutput.write(contentOfEntry);
tarOutput.closeArchiveEntry();