使用GZIPInputStream和GZIPOutputStream壓縮、解壓java對象

本例子演示怎樣對java對象進行壓縮和解壓,主要用到java.util.zip包裏的GZIPInputStream和GZIPOutputStream類。  AjavaUser 爲要壓縮的對象,會被壓縮爲 ajavauser.dat文件,再經過解壓方法,讀取 ajavauser.dat 裏的數據。

java類對象:
java

package ajava.code.javase;app

import java.io.Serializable;ide

public class AjavaUser implements Serializable {        網站

    private Long id;ui

    private String username;this

    private String password;spa

    private String firstName;code

    private String lastName;對象

    public AjavaUser() {ip

    }

    public Long getId() {

        return id;

    }

    public void setId(Long id) {

        this.id = id;

    }

    public String getUsername() {

        return username;

    }

    public void setUsername(String username) {

        this.username = username;

    }

    public String getPassword() {

        return password;

    }

    public void setPassword(String password) {

        this.password = password;

    }

    public String getFirstName() {

        return firstName;

    }

    public void setFirstName(String firstName) {

        this.firstName = firstName;

    }

    public String getLastName() {

        return lastName;

    }

    public void setLastName(String lastName) {

        this.lastName = lastName;

    }

    @Override

    public String toString() {

        StringBuilder sb = new StringBuilder();

        sb.append("id=").append(id);

        sb.append("; username=").append(username);

        sb.append("; password=").append(password);

        sb.append("; firstName=").append(firstName);

        sb.append("; lastName=").append(lastName);

        return sb.toString();

    }

}


壓縮java對象:

package ajava.code.javase;

import java.io.FileOutputStream;

import java.io.File;

import java.io.ObjectOutputStream;

import java.io.IOException;

import java.util.zip.GZIPOutputStream;

public class AjavaZipObjectDemo {

    public static void main(String[] args) {

     AjavaUser admin = new AjavaUser();

        admin.setId(new Long(1));

        admin.setUsername("ajava");

        admin.setPassword("123456");

        admin.setFirstName("ajava.org");

        admin.setLastName("java獨立社區");

        AjavaUser foo = new AjavaUser();

        foo.setId(new Long(2));

        foo.setUsername("mark");

        foo.setPassword("123456");

        foo.setFirstName("ajava");

        foo.setLastName("會員");

        System.out.println("壓縮中...");

        System.out.println(admin);

        System.out.println(foo);

        try {

            FileOutputStream fos = new FileOutputStream(new File("ajavauser.dat"));

            GZIPOutputStream gos = new GZIPOutputStream(fos);

            ObjectOutputStream oos = new ObjectOutputStream(gos);

            oos.writeObject(admin);

            oos.writeObject(foo);

            oos.flush();

            oos.close();

            gos.close();

            fos.close();

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}

運行結果:

壓縮中...

id=1; username=ajava; password=123456; firstName=ajava.org; lastName=java獨立社區

id=2; username=mark; password=123456; firstName=ajava; lastName=會員


java對象壓縮文件的解壓:

package ajava.code.javase;

import java.io.FileInputStream;

import java.io.File;

import java.io.ObjectInputStream;

import java.io.IOException;

import java.util.zip.GZIPInputStream;

public class AjavaUnzipObjectDemo {

    public static void main(String[] args) {

        AjavaUser admin = null;

        AjavaUser foo = null;

        try {

            FileInputStream fis = new FileInputStream(new File("ajavauser.dat"));

            GZIPInputStream gis = new GZIPInputStream(fis);

            ObjectInputStream ois = new ObjectInputStream(gis);

            admin = (AjavaUser) ois.readObject();

            foo = (AjavaUser) ois.readObject();

            ois.close();

            gis.close();

            fis.close();

        } catch (IOException e) {

            e.printStackTrace();

        } catch (ClassNotFoundException e) {

            e.printStackTrace();

        }

        System.out.println("ajava網站創始人 = [" + admin + "]");

        System.out.println("ajava網站會員 = [" + foo + "]");        

        System.out.println("部分信息 = [" + admin.getFirstName() +"-"+admin.getLastName()+ "]");

    }

}

運行結果:

ajava網站創始人 = [id=1; username=ajava; password=123456; firstName=ajava.org; lastName=java獨立社區]

ajava網站會員 = [id=2; username=mark; password=123456; firstName=ajava; lastName=會員]

部分信息 = [ajava.org-java獨立社區]

相關文章
相關標籤/搜索