如何将序列化的对象压缩到文件中

在上一节中,您将学习如何将对象写入文件或序列化为文件 。 在此示例中,您不仅可以序列化它,还可以压缩序列化的对象以减小文件大小。

这个想法非常简单,仅使用“ GZIPOutputStream ”进行数据压缩。

FileOutputStream fos = new FileOutputStream("c:\\address.gz");
GZIPOutputStream gz = new GZIPOutputStream(fos);
ObjectOutputStream oos = new ObjectOutputStream(gz);

GZIP示例

在此示例中,您将创建一个“地址”对象,将其压缩并将其写入文件“ c:\\ address.gz ”。

PS Address对象可以参考本文

package com.mkyong.io;

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.zip.GZIPOutputStream;

public class Serializer implements Serializable{

   public static void main (String args[]) {
    
	   Serializer serializer = new Serializer();
	   serializer.serializeAddress("wall street", "united state");
   }

   public void serializeAddress(String street, String country){
	   
	   Address address = new Address();
	   address.setStreet(street);
	   address.setCountry(country);
	   
	   try{
		   
		   FileOutputStream fos = new FileOutputStream("c:\\address.gz");
		   GZIPOutputStream gz = new GZIPOutputStream(fos);

		   ObjectOutputStream oos = new ObjectOutputStream(gz);
		   
		   oos.writeObject(address);
		   oos.close();
		   
		   System.out.println("Done");
		   
	   }catch(Exception ex){
		   ex.printStackTrace();
	   }	 
   }
}

翻译自: https://mkyong.com/java/how-to-compress-serialized-object-into-file/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值