io

InputStream的作用是用来表示那些从不同数据源产生输入的类:包括

  1. 字节数组      ByteArray
  2. String对象   StringBuffer
  3. 文件            File
  4. 管道        Piped
  5. 一种由其他种类的流组成的序列   SequenceInputStream  (两个或多个InputStream对象转换成单一InputStream)

OutputStream决定了输出所要去的目标 

  1. 字节数组   ByteArray
  2. 文件     File
  3. 通道         Piped

装饰器类为FilterInputStream/FilterOutputStream

 FilterInputStream类型有2个功能:a.DataInputStream可以读取不同的基本类型数据以及String对象  b.其他FilterInputStream则在内部修改InputStream的行为方式:1是否缓冲2是否保留它所读过的夯3是否把单一字符推回输入流等

  1. DataInputStream
  2. BufferedInputStream
  3. LineNumberInputStream
  4. PushbackInputStream

无缓冲输入为特殊情况,一般都缓冲

FilterOutputStream类型

  1. DataInputStream
  2. PrintStream
  3. BufferedOutputStream

 

InputStreamReader/OutputStreamWriter 适配器模式

 Reader和Writer面向字符,兼容Unicode,目的为了提供国际化功能

PrintStream可视化打印所有的基本数据类型以及String对象

DataOutputStream的目的是将数据元素置入“流”中,是DataInputStream能够可移植地重构它们

使用readLine()时应该使用BufferedReader,除此种情况之外,DataInputStream认识IO类库的首选成员

自我独立的类

RandomAccessFile适用于由大小一致的记录组成的文件,可以使用seek()将记录从一处转移到另一处,然后读取或者修改,getFilePointer()查找当前所处的文件位置,搜寻方法只适用于文件。不是InputStream或OutputStream继承层次结构,实现了DataInput和DataOutput接口(DataInputStream和DataOutputStream也实现了这两个接口),它和这两个继承层次结构没有任何关联。

 

标准io

System.in(未被包装,在读取System.in之前必须对其进行包装)、System.out、System.err(后两者被包装成了PrintStream)

总结

io中用到了装饰器模式和适配器模式 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值