【发布时间】:2013-09-14 16:24:50
【问题描述】:
给定一个.tar 存档,Matlab 允许通过UNTAR 命令将包含的文件提取到磁盘。然后可以以普通方式操作提取的文件。
问题:当多个文件存储在一个 tarball 中时,它们会连续存储在磁盘上,并且原则上可以连续访问它们。提取此类文件后,这种连续性将不再存在,文件访问可能会变得随机,因此缓慢且效率低下。
当考虑的文件很多(数千)且很小时,这一点尤其重要。
我的问题:有没有办法访问存档文件避免初步提取(以一种 HDF5 方式)?
换句话说,是否可以缓存.tar,以便从内存而不是磁盘访问包含的文件?
【问题讨论】:
-
MATLAB的
untar函数是基于Java的,所以如果你找到实现内存解压的Java库,或许可以在MATLAB中使用 -
ok 查看实现 (
edit untar.m),您可以修改它(或制作自己的版本)以将输出写入字节流而不是文件流(所有 Java API)。 .
标签: matlab archive tar disk-access