JAVA 字符流、过滤流、管道流、压缩文件流

字符流

在Java语言中,字符都是以16位Unicode码的形式表示的。处理Unicode码的所有类都是从Reader和Writer两个抽象超类中衍生的。对一个带有分隔符的Unicode文件的读写流程如图

字符输入流

字符输入流均为Reader的子类,java.io的字符输入流类

1.Reader:方法包括read();skip();markSupported();mark();reset()

2.InputStreamReader:

方法:

getEncoding();InputStreamReader()和close()


3.BufferedReader:

方法包括:

readLine();BufferedReader()


字符输出流

字符输出流均为Writer的子类

Writer

方法:

write();flush();


OutputStreamWriter

方法:close()


BufferedWriter

方法包括newLine()


类名中有buffer的类在处理I/O时大多具有缓冲功能,可以提高I/O的传输效率,输出流和输入流常成对出现。


过滤流

FilterInputStream和FilterOutputStream抽象类及其子类是过滤流类,它们保证某I/O流只能同时被一个线程访问,从而为java对I/O流的同步处理机制提供保障。使用过滤流时先把过滤流链接到某个I/O流上,再通过构造方法的参数去指定连接的I/O流


1.BufferedInputStream

父类:FilterInputStream

功能:缓冲读取数据,提高读取性能

方法:mark()、reset()、skip()




2.BufferedOutputStream

父类:FilterOutputStream

功能:缓存写入数据,提高写入效率

方法:filsh();强制把缓冲区内容写入输出流


3.DataInputStream、DataOutputStream

功能:能够以java内购的boolean、int、float等数据类型形式读/写数据流


4.LineNumberInputStream

过滤类,可以计算行数,支持换行、回车的处理


5.PushbackInputStream

可在编译时为语法分析提供帮助


6.PrintStream

适用于标准输出


管道流

一个程序、线程或代码段的输出是另一个程序、线程或代码段的输入,这就是管道。它的输出流称为发送方,输入流称为发送方

java.io中提供了PipedInputStream和PipedOutputStream类作为管道的I/O构件


1.PipedInputStream

管道输入流类

方法

PipedInputStream(PipedOutputStream src);
public void connect(PipedOutputStream src);

2.PipedOutputStream

管道输出流类

方法

PipedOutputStream(PipedInputStream snk);
public void connect(PipedInputStream snk);

管道输入流和管道输出流一般都成对出现


压缩文件流

java中的压缩文件归属java.util.zip和java.util.jar包,压缩流程如图所示


J2SE的扩展I/O功能

1.扩展I/O功能

内存映射技术

文件锁定

字符及编码

非阻塞I/O


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值