添加属性和有用的接口
FilterInputStream和FilterOutputStream是用来提供装饰器类接口以控制特定输入流(InputStream)和输出流(OutputStream)的两个类,他们的名字不是很直观,FilterInputStream和FilterOutputStream分别来自I/O类库中的基类InputStream和OutputStream,这两个类是装饰器的必要条件。
一、通过FilterInputStream从InputStream读取数据
FilterInputStream类能够完成两件完全不同的事情。
- DataInputStream允许我们读取不同的基本类型数据以及String对象,搭配相应的DataOutputStream,我们就可以通过数据流将基本类型的数据从一个地方迁移到另一个地方。
- 其他FilterInputStream类则在内部修改InputStream的行为方式:是否缓冲,是否保留它所读过的行,以及是否把单一字符推回输入流等等。
FilterInputStream类型
类 |
功能 |
构造器参数|如何使用 |
DataInputStream |
与DataOutputStream搭配使用,因此,我们可以按照可移植方式从流读取基本数据类型 |
InputStream
包含用于读取基本类型数据的全部接口
|
BufferedInputStream |
使用它可以防止每次读取数据时都得进行实际写操作。代表“使用缓冲区” |
InputStream
可以指定缓冲区大小,本质上不提供接口,只不过是向进程中添加缓冲区所必需的。与接口对象搭配
|
LineNumberInputStream |
跟踪输入流中的行号;可调用getLineNumber()和setLineNumber(int) |
InputStream
仅增加了行号,因此可能要与接口对象搭配使用
|
PushbackInputStream |
具有“能弹出一个字节的缓冲区”。因此可以将读到最后的一个字符回退。 |
InputStream
通常作为编辑器的扫描器,之所以包含在内是因为java编译器的需要,我们可能永远不会用到。
|
二、通过FilterOutputStream向OutputStream写入
与DataInputStream对应的是DataOutputStream,它可以将各种基本数据类型以及String对象格式化输出到流中,这样一来,任何机器上的任何DataInputStream都能够读取他们,所有的方法都以write开头。
FilterOutputStream类型
类 |
功能 |
构造器参数|如何使用 |
DataOutputStream |
与DataInputStream搭配使用,因此可以按照可移植方式向流中写入基本类型数据 |
OutputStream
包含用于写入基本类型数据的全部接口
|
PrintStream |
用于产生格式化输出,其中DataOutputStream处理数据的存储,PrintStream处理显示。 |
OutputStream,可以用boolean值指示是否在每次换行是清空缓冲区,应该是对OutputStream对象的final封装。
可能会经常使用到他。
|
BufferedOutputStream |
使用他以避免每次发送数据时都要进行实际的写操作。代表“使用缓冲区”。可以调用flush()清空缓冲区。 |
OutputStream,可以指定缓冲区大小。
本质上并不提供接口,只不过是向进程中添加缓冲区所必需的。
与接口对象搭配。
|
分享到:
相关推荐
描述java的I/o系统,描述了java中文件系统的处理,数据流的处理
Java I/O学习笔记: 磁盘操作 字节操作 字符操作 对象操作 网络操作 NIO & AIO Java I/O Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,意味着可以在不同的操作系统上运行...
简单介绍了java 的输入输出系统中类的使用,java1.0和java1.1中的类的来源去向
NULL 博文链接:https://xace.iteye.com/blog/703920
本系统是基于JAVA开发平台,运用Socket网络编程,I/O文件流,线程,Swing图形界面等技术,实现的一套标准化考试系统。通过该系统可以完成多个科目的标准化考试工作。 该系统共分为三个模块:考生客户端,服务器端和...
什么是同步?什么是异步?阻塞和非阻塞又有什么区别?本文先从 Unix 的 I/O ...而后再引出 Java 的 I/O 模型的演进过程,并用实例说明如何选择合适的 Java I/O 模型来提高系统的并发量和可用性。,需要的朋友可以参考下
java使用简单的I/O编写的投票系统
本博文主要讨论I/O在底层是如何工作的。本文服务的读者,迫切希望了解Java I/O操作是在机器层面如何进行映射,以及应用运行时硬件都做了什么。...通常,进程执行操作系统的I/O请求包括数据从缓冲区排
彻底明白 Java 语言中的IO系统 彻底明白 Java 语言中的IO系统
主要介绍了Java I/O深入学习之File和RandomAccessFile, I/O系统即输入/输出系统,对于一门程序语言来说,创建一个好的输入/输出系统并非易事。在充分理解Java I/O系统以便正确地运用之前,我们需要学习相当数量的...
NIO 的创建目的是为了让 Java 程序员可以实现高速 I/O 而无需编写自定义的本机代码。NIO 将最耗时的 I/O 操作(即填充和提取缓冲区)转移回操作系统,因而可以极大地提高速度。
对程序语言的设计者来说,创建一个好的输入/输出(I/O)系统是一项艰难的任务,在整个Java.io包中最重要的就是5个类和一个接口。5个类指的是File、OutputStream、InputStream、Writer、Reader;一个接口指的是...
编程语言的I/O类库中常常使用流这个抽象的概念,它代表任何有能力产生数据的数据源对象或时有能力接收数据的接收端对象,本文为大家介绍Java中I/O系统基础知识
这个是我基于I/O流设计的图书馆管理系统项目总结,是有篇文章的,如果实在不会整再来下载这个完整的。文章:https://blog.csdn.net/GB__LaoWang/article/details/115914058
这段代码实现了一个简单的文件管理系统,其中使用了Java的I/O类库。在类的构造方法中,首先创建了一个File对象来表示要操作的文件,如果该文件不存在则创建新文件。然后通过FileReader和BufferedReader类来读取文件...
彻底明白 Java 语言中的IO系统 .pdf
JAVA NIO有两种解释:一种叫非阻塞IO(Non-blocking I/O),另一种也叫新的IO(New I/O),其实是同一个概念。它是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为...
彻底明白Java的IO系统,知道I/O内部运行机制。
本书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、JavaI/O系统、枚举类型、并发以及图形化用户界面等内容。这些丰富的内容,包含了...
文件批量处理用(Eclipse)Java实现,模块为了方便管理文件而设计,通过本模块可以快速地实现文件的批量复制、批量删除、批量重命名、文件分类等。内含设计文档,包括使用说明。还有打包好的可运行的jar文件。