说说 Java I/O 系统之 FilterInputStream 与 FilterOutputStream 类

Java I/O 不容易使用,因为我们必须把核心的 I/O 类型再加上需要的装饰器,才能得到希望的 I/O 对象。

FilterInputStream 与 FilterOutputStream 类会提供装饰器类接口以控制特定的输入流与输出流的类,它们分别是从 I/O 的基类 InputStream 和 OutputStream 派生过来的。

1 使用 FilterInputStream 从 InputStream 中读取数据

FilterInputStream 的类型列表:

功能构造器参数说明
DataInputStream与 DataOutputStream 搭配使用,可以从流中读取基本数据类型。InputStream包含读取基本类型数据的所有接口。
BufferedInputStream使用缓冲区读取数据。InputStream,可以指定缓冲区大小。只是提供缓冲区模式,必须与其他对象搭配使用。
LineNumberInputStream跟踪输入流中的行号。InputStream仅增加了行号,必须与其他对象搭配使用。
PushbackInputStream提供可以弹出一个字节的缓冲区,所以可以将读到的最后一个字符回退。InputStream编译器的扫描器,供 Java 编译器使用,一般不会用到。

一般都要对输入进行缓冲,所以 I/O 库会把无缓冲的输入作为一种特殊情况。

2 使用 FilterOutputStream 从 OutputStream 中写入数据

功能构造器参数说明
DataOutputStream与 DataInputStream 搭配使用,可以从流中写入基本数据类型。OutputStream包含写入基本类型数据的所有接口。
PrintStream产生格式化后的输出。OutputStream使用 boolean 指示是否在每次换行时,清空缓冲区。
BufferedOutputStream使用缓冲区发送数据;flush() 用于清空缓冲区。OutputStream,可以指定缓冲区的大小。只是提供缓冲区模式,必须与其他对象搭配使用。

PrintStream 中有两个方法:print() 和 println()。重载它们就能打印各种数据类型。println() 与 print() 的不同之处是,它会在操作后添加一个换行符。

PrintStream 有些问题,它会捕获所有的 IOExceptions 类,而且也未完全国际化,也就是说中文字符会出现乱码。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值