设计模式学习笔记--设计模式在Java I/O中的应用(装饰模式和适配器模式)(三)

2014-11-23 23:31:15 · 作者: · 浏览: 1
数据 import java.io.*; class StoringAndRecoveringData { public static void main(String[] args) throws IOException { DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("Data.txt"))); out.writeDouble(3.14159); out.writeUTF("你好"); out.writeDouble(1.111222); out.writeUTF("'That's True"); out.close(); DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream("Data.txt"))); System.out.println(in.readDouble()); System.out.println(in.readUTF()); System.out.println(in.readDouble()); System.out.println(in.readUTF()); } }

用GZIP进行简单压缩


GZIP接口非常简单,如果我们只想对单个数据流(而不是一系列互异数据)进行压缩,它可能比较适合。代码如下:

//用GZIP进行简单压缩
import java.io.*;
import java.util.zip.*;
class GZIPcompress
{
	public static void main(String[] args) throws IOException
	{
		if(args.length == 0)
		{
			System.out.println("Usage:\nGZIPcompress file\nUses GZIP compression to compress the file to test.gz");
			System.exit(1);
		}
		//写压缩文件入磁盘
		BufferedReader in = new BufferedReader(new FileReader(args[0]));
		BufferedOutputStream out = new BufferedOutputStream(
			new GZIPOutputStream(new FileOutputStream("test.gz")));
		System.out.println("Writing file");
		int c;
		while((c = in.read()) != -1)
		{
			out.write(c);
		}
		in.close();
		out.close();
		//从磁盘读取压缩文件
		System.out.println("Reading file");
		BufferedReader in2 = new BufferedReader(
			new InputStreamReader(new GZIPInputStream(new FileInputStream("test.gz"))));
		String s;
		while(( s = in2.readLine()) != null)
		{
			System.out.println(s);
		}
	}
}


结构模式(Structural Pattern)小结


结构模式(Structural Pattern)一共有七种,分别是:适配器模式、装饰模式、合成模式、代理模式、享元模式、门面模式、桥梁模式。

大致总结如下: