本篇是为修改原作者bug,原作者:java解压rar5 兼容rar4_So straw?-CSDN博客
在我测试时发现bug,此方法
public int write(byte[] data) throws SevenZipException { try { if (!isFolder) { System.out.println(path); File file = new File(ourDir + path); save2File(file, data); } } catch (Exception e) { e.printStackTrace(); } return data.length; }
在解压过程中有些文件会获取多个byte[],save2File()只写入了最后一组byte[],导致字节缺失。(原因没有深究,猜测是byte[]缓冲大小限制)
修改方法如下:
@Override public ISequentialOutStream getStream(int index, ExtractAskMode extractAskMode) throws SevenZipException { th