我有一个需要 tar/gz 大量数据(14 gigs)的 java 程序,我正在使用 commons-compress。这将是每周重复发生的工作,并且是自动化的。
当我尝试压缩这种大小的东西时,我得到:
java.lang.IllegalArgumentException: 13313903445=143144405525 will not fit in octal number buffer of length 11
at org.apache.commons.compress.archivers.tar.TarUtils.formatUnsignedOctalString(TarUtils.java:212)
at org.apache.commons.compress.archivers.tar.TarUtils.formatLongOctalBytes(TarUtils.java:265)
at org.apache.commons.compress.archivers.tar.TarArchiveEntry.writeEntryHeader(TarArchiveEntry.java:749)
at org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.putArchiveEntry(TarArchiveOutputStream.java:209)
at com.broadridge.adc.core.commons.io.ADCFileUtils.addFilesToCompression(ADCFileUtils.java:144)
at com.broadridge.adc.core.commons.io.ADCFileUtils.addFilesToCompression(ADCFileUtils.java:154)
at com.broadridge.adc.core.commons.io.ADCFileUtils.compressFiles(ADCFileUtils.java:125)
at com.broadridge.adc.core.commons.io.ADCFileUtils.compressFile(ADCFileUtils.java:106)
我的代码适用于少量信息(大约 600 兆)。我查看了源代码,但我不清楚为什么会发生错误。
有谁知道为什么会这样?