java解压rar5 兼容rar4(改bug)

博主在测试原作者的Java RAR5解压代码时遇到bug,某些文件在解压过程中因保存到文件的字节数组只写入了最后一组,导致字节缺失。通过修改解压方法,成功解决该问题,确保所有字节都被正确写入文件。
摘要由CSDN通过智能技术生成

本篇是为修改原作者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
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值