尝试使用c++ gzlib和java GZIPOutputStream 读写gz压缩文件

本文介绍了在处理大量数据时,为减少硬盘占用和IO时间,尝试使用Java的GZIPOutputStream压缩文件,并用C++进行读取。通过测试代码展示了如何将double转换为byte[]以适应GZIPOutputStream,并对比了压缩前后文件大小,强调了gzip的优秀压缩效果。
摘要由CSDN通过智能技术生成

问题背景:

我需要生成一个大概1.5T的double型矩阵,硬盘受不了,IO时间消耗不起,于是尝试在输出前压缩。矩阵生成使用java,在矩阵上的计算使用cpp


于是分别尝试使用java 写gz压缩文件和使用c++读压缩文件


一下为简单的测试代码:

写:

 public boolean generateGzipFile(String ofname) throws IOException {
                FileOutputStream fout = new FileOutputStream(ofname);
                GZIPOutputStream gos = new GZIPOutputStream(fout);
                for(int i = 0; i < numbers.size(); i++){
                        String tstr = String.valueOf(numbers.get(i));
                        tstr += "\n";
                        gos.write(tstr.getBytes());
                }
                gos.finish();
                gos.flush();
                gos.close();
                return true;
        }

读:

<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值