java34java中的IO(三)

处理流的实例

BufferedReader属于字符流,全称字符输入处理流。
优势是一次读取一行的信息
public Sring readLine()
throwsIOExceptio

生成对象的方法

BufferedReader in = new BufferedReader(newFileReader(“foo.in”));
将Reader作为对象。
函数:readLine():一次读取一行返回一个字符串。

“装饰者(Decorator)”模式

装饰者:为被装饰者添加功能。
BufferedReader为装饰者。
FileReader为被装饰者。
装饰者和被装饰者必须同属于一类,可以互相转换。

//创建接口Worker
interface Worker{
    public void doSomeWork();
}
//创建水管工类
class Plumber implements Worker{
    public void doSomeWork(){
        System.out.println("修水管");
    }
}
//创建木匠
class Carpenters implements Worker{
    public void doSomeWork(){
        System.out.println("木匠");
    }
}
//创建Aworker类作为装饰者
class AWorker implements Worker{
    private Worker worker;
    public  AWorker(Worker worker){
        this.worker = worker;
    }

    public void doSomeWork(){
        System.out.println("nihao");
        worker.doSomeWork();

    }
}
//
public class Test01{
    public static void main(String[] args){
        //生成一个水管工对象
        Plumber plumber = new Plumber();
        //生成一个AWorker对象
        AWorker aWorker = new AWorker(plumber);
        aWorker.doSomeWork();

        Carpenters capenter = new Carpenters();
        AWorker aWorker1  = new AWorker(capenter);
        aWorker1.doSomeWork();
    }
}

节点流与处理流的关系

节点流为被装饰者,处理流为装饰者。

转换流的使用

import java.io.*;
public class TestTransForm1 {
    public static void main(String[] args) {
        InputStreamReader s = new InputStreamReader(System.in);

        BufferedReader b = new BufferedReader(s);

        String str = null;
        try{
            str = b.readLine();
            while(str != null) {
                if(str.equalsIgnoreCase("exit")) {
                    break;
                }
                System.out.println(str.toUpperCase());
                str = b.readLine();
            }
            b.close();
        }
        catch(IOException e ) {
            e.printStackTrace();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值