下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

java中如何修改数据流的行为

作者:课课家教育     来源: http://www.kokojia.com点击数:1246发布时间: 2016-02-22 14:21:12

标签: java基础类java的对象java的编程

大神带你学编程,欢迎选课

  在java 1.0中,数据流通过FilterInputStream和FilterOutputStream的“装饰器”(Decorator)子类适应特定的需求。Java 1.1的IO流沿用了这一思想,但没有继续采用所有装饰器都从相同“filter”(过滤器)基础类中衍生这一做法。若通过观察类的层次结构来理解它,这可能令人出现少许的困惑。

  在下面这张表格中,对应关系比上一张表要粗糙一些。之所以会出现这个差别,是由类的组织造成的:尽管BufferedOutputStream是FilterOutputStream的一个子类,但是BufferedWriter并不是FilterWriter的子类(对后者来说,尽管它是一个抽象类,但没有自己的子类或者近似子类的东西,也没有一个“占位符”可用,所以不必费心地寻找)。然而,两个类的接口是非常相似的,而且不管在什么情况下,显然应该尽可能地使用新版本,而不应考虑旧版本(也就是说,除非在一些类中必须生成一个Stream,不可生成Reader或者Writer)。

java中如何修改数据流的行为_java基础类_java的对象_课课家

  过滤器:Java 1.0类 对应的Java 1.1类

  FilterInputStream FilterReader

  FilterOutputStream FilterWriter(没有子类的抽象类)

  BufferedInputStream BufferedReader(也有readLine())

  BufferedOutputStream BufferedWriter

  DataInputStream 使用DataInputStream(除非要使用readLine(),那时需要使用一个BufferedReader)

  PrintStream PrintWriter

  LineNumberInputStream LineNumberReader

  StreamTokenizer StreamTokenizer(用构建器取代Reader)

  PushBackInputStream PushBackReader

  有一条规律是显然的:若想使用readLine(),就不要再用一个DataInputStream来实现(否则会在编译期得到一条出错消息),而应使用一个BufferedReader。但除这种情况以外,DataInputStream仍是Java 1.1 IO库的“首选”成员。

  为了将向PrintWriter的过渡变得更加自然,它提供了能采用任何OutputStream对象的构建器。PrintWriter提供的格式化支持没有PrintStream那么多;但接口几乎是相同的。

赞(21)
踩(2)
分享到:
华为认证网络工程师 HCIE直播课视频教程