当前位置: 首页 > 知识库问答 >
问题:

我可以将流或字节写入Apache Commons压缩tarfile吗?

廖诚
2023-03-14

Apache Commons压缩库的重点似乎是编写一个TarchiveOutputStream的TarchiveEntry。但是看起来创建TarArchiveEntry的唯一方法是使用File对象。

有没有什么办法我可以做这样的事情:

TarEntry entry = new TarEntry(int size, String filename);
entry.write(byte[] fileContents);
TarArchiveOutputStream tarOut = new TarArchiveOutputStream();
tarOut.write(entry);
tarOut.flush();
tarOut.close();

或者,更好的....

InputStream nioTarContentsInputStream = .....
TarEntry entry = new TarEntry(int size, String filename);
entry.write(nioTarContentsInputStream);
TarArchiveOutputStream tarOut = new TarArchiveOutputStream();
tarOut.write(entry);
tarOut.flush();
tarOut.close();

共有1个答案

万俟经纶
2023-03-14

使用以下代码:

java prettyprint-override">byte[] test1Content = new byte[] { /* Some data */ }; 

TarArchiveEntry entry1 = new TarArchiveEntry("test1.txt");
entry1.setSize(test1Content.length);

TarArchiveOutputStream out = new TarArchiveOutputStream(new FileOutputStream("out.tar"));
out.putArchiveEntry(entry1);
out.write(test1Content);
out.closeArchiveEntry();
out.close();

这将生成所需的tar文件,其中包含一个文件,内容来自字节[]

 类似资料:
  • 问题内容: 情况如下: 我从Amazon S3获取gzip压缩的xml文档 我以文件形式阅读它们 题 如何直接解压缩流并读取内容? 我不想创建临时文件,它们看起来不太好。 问题答案: 是的,您可以使用该模块解压缩字节流: 到标头的32个偏移量表示gzip标头是预期的但已跳过。 S3键对象是一个迭代器,因此您可以执行以下操作:

  • 问题内容: 有没有一种方法可以将字符串直接写入tarfile?从http://docs.python.org/library/tarfile.html看来,只能添加已经写入文件系统的文件。 问题答案: 我想说,通过将StringIO作为文件对象传递给TarInfo e TarFile.addfile是有可能的。 很粗糙,但可以

  • 下面是我尝试过的所有方法的列表,这些方法都失败了: file_get_contents():不能将输入类型的流表示为文件描述符 “” https://arjunphp.com/how-to-unpack-a-zip-file-using-php/ 我开始认为用PHP内置的zip功能来操作流是不可能的。编写临时文件的开销和复杂性将非常令人失望。有人知道怎么做到这一点吗,还是一个bug?

  • 我知道,通过将参数传递给,我可以将数据文件保存到压缩的CSV文件中。 这个问题是由我用熊猫处理一个大型CSV文件引起的。我需要产生压缩的CSV输出,并且正在将CSV文件分块处理成一个DataFrame,这样我就不会遇到MemoryError。因此,对我来说,最符合逻辑的做法是将每个输出DataFrame块添加到一个压缩的zip文件中。 我使用的是Python 3.4和Pandas 0.16.1。

  • 问题内容: 我正在使用一些非常沉重的AJAX,其中许多数据都从客户端到服务器。在发送到服务器之前,如何压缩数据(主要是纯文本)? 以及如何在服务器端解压缩数据? 问题答案: jSEND似乎完全可以做到这一点。有人用过吗? 断开的链接已删除:导致垃圾邮件登陆页面@ jsend.org

  • 问题内容: 我正在从USGS订购大量的landsat场景,这些场景是tar.gz档案。我正在编写一个简单的python脚本来解压它们。每个档案包含15张tiff图像,大小在60-120 mb之间,总计超过2 gb。我可以使用以下代码轻松提取整个档案: 我实际上只需要在标题中标识为“ bands”的15个tiff中的6个。这些是一些较大的文件,因此它们一起占大约一半的数据。因此,我认为可以通过如下修