适配者模式应用:java转换流InputStreamReader和OutputStreamWriter类

适配者模式参考:http://blog.csdn.net/dengjili/article/details/79485034

java中的IO流转换主要针对字节流向字符流的转换,字符流有行读写方法

InputStreamReader

对象适配器设计模式
适配者模式应用:java转换流InputStreamReader和OutputStreamWriter类_第1张图片
重要说明

  1. InputStreamReader为适配器模式
  2. BufferedReader为装饰者模式

具体例子代码

文件tmp

测试文件,1234qaz
dengjili
package headfirst.hd.adapter.eg;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;

public class TestInputStreamReader {

    public static void main(String[] args) throws Exception {
        InputStream is = new FileInputStream(new File("tmp"));
        //适配器转换类型
        Reader reader = new InputStreamReader(is, "UTF-8");
        //装饰者模式增强方法readLine
        BufferedReader br = new BufferedReader(reader);

        String line = null;
        while ( (line = br.readLine()) != null ) {
            System.out.println(line);
        }

        //关闭各种流
    }

}

测试结果

测试文件,1234qaz
dengjili

反之,OutputStreamWriter

功能与InputStreamReader想法,这里不再给例子

你可能感兴趣的:(设计模式)