文档章节

装饰模式在Java I/O库中的应用

蜀山下的鱼
 蜀山下的鱼
发布于 2015/04/29 00:42
字数 155
阅读 9
收藏 0

 

 

编写一个装饰者把所有的输入流内的大写字符转化成小写字符:

 

import java.io.FilterInputStream;

import java.io.IOException;

import java.io.InputStream;

public class LowerCaseInputStream extends FilterInputStream

{

    protected LowerCaseInputStream(InputStream in)

    {

        super(in);

    }

    

    @Override

    public int read() throws IOException

    {

        int c = super.read();

        return (c == -1 ? c : Character.toLowerCase((char) c));

    }

    

    @Override

    public int read(byte[] b, int offset, int len) throws IOException

    {

        int result = super.read(b, offset, len);

        

        for (int i = offset; i < offset + result; i++)

        {

            b[i] = (byte) Character.toLowerCase((char) b[i]);

        }

        

        return result;

        

    }

}

 

测试我们的装饰者类:

import java.io.*;

public class InputTest

{

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

    {

        int c;

        

        try

        {

            InputStream in = new LowerCaseInputStream(new BufferedInputStream(

                    new FileInputStream("D:\\test.txt")));

            

            while ((c = in.read()) >= 0)

            {

                System.out.print((char) c);

            }

            

            in.close();

        }

        catch (IOException e)

        {

            e.printStackTrace();

        }

    }

}

 

本文转载自:http://blog.csdn.net/caiwenfeng_for_23/article/details/8445235

蜀山下的鱼
粉丝 9
博文 405
码字总数 0
作品 0
广州
高级程序员
私信 提问
java I/O库中设计模式的应用

在java语言 I/O库的设计中,使用了两个结构模式,即装饰模式和适配器模式。 在任何一种计算机语言中,输入/输出都是一个很重要的部分。与一般的计算机语言相比,java将输入/输出的功能和使用...

叶知秋
2013/06/06
3.6K
2
JAVA IO 设计模式彻底分析

一。引子(概括地介绍Java的IO)   无论是哪种编程语言,输入跟输出都是重要的一部分,Java也不例外,而且Java将输入/输出的功能和使用范畴做了很大的扩充。它采用了流的 机制来实现输入...

2k10
2015/03/13
280
0
Java: I/O(1/3)字节流与字符流的纵向与横向比较

Summary 总述 java.io包中的类非常繁多,但其实只要归成4类: & 、 & ,由于功能和命名上都相当接近,因此只要掌握了其中一种,将会很容易理解其他3种。 横向归类: & (字节流)、 & (字符...

大鱼BIG_FISH
2015/11/16
148
2
Java设计模式学习记录-装饰模式

前言 装饰模式也是一种结构型模式,主要是目的是相对于类与类之间的继承关系来说,使用装饰模式可以降低耦合度。JDK中有不少地方都使用到了装饰模式,例如Java的各种I/O流,javax.swing包中一...

纪莫
2018/08/12
0
0
Java程序员进化为架构师需要掌握的知识

Java程序员进化为架构师掌握的知识: 一:Java知识 1、进制转换 2、Java基本数据类型 面向对象相关知识 3、类、接口、抽象类 this关键字、static关键字、final关键字 方法的参数传递机制 Ja...

andogo
2014/05/16
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
14
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
15
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部