zoukankan      html  css  js  c++  java
  • 装饰器模式

    class BufferedReadLineNum1 extends BufferedReader{
    //内部维护的被装饰者类
    BufferedReader bufferedReader;
    int count = 1;
    public BufferedReadLineNum1(BufferedReader read){
    super(read);
    this.bufferedReader = read;
    }
    //开始拓展功能
    public String readLine()throws IOException{
    String content = bufferedReader.readLine();
    if(content == null){
    return null;
    }
    content = count + " " +content;
    count++;
    return content;
    }
    }

    //带分号
    class BufferedReadLineSemi1 extends BufferedReader{
    BufferedReader bufferedReader;
    public BufferedReadLineSemi1(BufferedReader read){
    super(read);
    this.bufferedReader = read;
    }
    //开始拓展功能
    public String readLine()throws IOException{
    String content = bufferedReader.readLine();
    if(content == null){
    return null;
    }
    return content+";";
    }
    }
    //带引号
    class BufferReaderLineMark1 extends BufferedReader{
    //1.内部需要一个被装饰类的应用
    BufferedReader bufferedReader;
    public BufferReaderLineMark1(BufferedReader read){
    super(read);
    this.bufferedReader = read;
    }
    //重写
    public String readLine()throws IOException{
    String content = bufferedReader.readLine();
    if(content == null){
    return null;
    }
    return """+content+""";
    }
    }
    public class Demo2 {


    public static void main(String[] args) throws IOException {

    //1.开启通道
    FileReader reader = new FileReader("C:\zmy\test.txt");
    //2.创建缓冲流
    BufferedReader bufferedReader = new BufferedReader(reader);

    //3.创建带引号
    BufferReaderLineMark1 lineMark1 = new BufferReaderLineMark1(bufferedReader);

    //3.创建带行号
    BufferedReadLineNum1 lineNum1 = new BufferedReadLineNum1(lineMark1);

    //3.创建带分号
    BufferedReadLineSemi1 lineSemi1 = new BufferedReadLineSemi1(lineNum1);

    //3.创建带引号
    //BufferReaderLineMark1 lineMark1 = new BufferReaderLineMark1(lineSemi1);

    //4.读取数据
    String content = null;
    while((content = lineSemi1.readLine()) != null){
    System.out.println(content);
    }

    //关闭
    lineSemi1.close();
    }

    }

  • 相关阅读:
    SharePoint 2010 Crawl Component Stuck in “Recovering” status
    什么是Named Pipes
    请不要修改FIM的配置, 否则SharePoint的User Profile无法获得微软支持
    经典的SharePoint 2010升级中的多核CPU冲突问题
    怎样才能比较方便地查看PowerShell里返回回来的对象的每个成员及它们的值呢?
    如何打开证书控制台
    浏览器: F5 和 Ctrl+F5的区别
    关于用户角色权限管理的探讨
    支付宝接口源代码
    海量数据处理
  • 原文地址:https://www.cnblogs.com/future-zmy/p/6144383.html
Copyright © 2011-2022 走看看