io

原创 2016年05月31日 15:37:46

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中用到了装饰器模式和适配器模式 

5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO

5种IO模型:阻塞IO模型、非阻塞IO模型、IO复用模型、信号驱动IO模型、异步IO模型;IO模型比较:阻塞IO调用和非阻塞IO调用、阻塞IO模型和非阻塞IO模型、同步IO和异步IO...
  • tjiyu
  • tjiyu
  • 2016年10月28日 20:01
  • 2759

关于"__IO uint32_t" 中的__IO 表达的意思

这个 _IO 是指静态 volatile uint32_t 是指32位的无符号整形变量
  • znmdwahaha
  • znmdwahaha
  • 2014年05月03日 22:05
  • 4606

阻塞IO、非阻塞IO的区别

1.类与类之间的关系:依赖,实现,泛化(继承),关联,组合,聚合。 1)依赖(虚线):一个类是 另一个类的函数参数 或者 函数返回值。 2)实现(实线加小圆):对纯虚函数类(抽象类)的实现。 3)继承...
  • yyxyong
  • yyxyong
  • 2017年03月17日 18:45
  • 2871

逻辑IO和物理IO

O性能对于一个系统的影响是至关重要的。一个系统经过多项优化以后,瓶颈往往落在数据库;而数据库经过多种优化以后,瓶颈最终会落到IO。而IO性能的发展,明显落后于CPU的发展。Memchached也好,N...
  • lileizhang
  • lileizhang
  • 2014年03月06日 14:00
  • 839

IO端口、IO内存、IO空间、内存空间的含义和联系

1,IO空间:X86一个特有的空间,与内存空间独立的空间,同样利用IO空间可以操作数据,只不过是利用对应的IO端口操作函数,例如inb(), inbw(), inl(); outb(), outw()...
  • Buyi_Shizi
  • Buyi_Shizi
  • 2016年04月08日 11:39
  • 1357

Oracle 数据库服务器 IO 高的分析方案

目录: 慧眼识珠——服务器磁盘这么繁忙,到底是谁干的? 谨记于心——ORACLE DBA判断IO有性能问题的标准 带刀侍卫——处理IO问题必须掌握的一个ORACLE工具 说难不难——用几句话...
  • yincg
  • yincg
  • 2017年05月08日 14:53
  • 1406

浅谈Linux IO 性能监控

Linux系统出现了性能问题,一般我们可以通过top、iostat、free、vmstat等命令来查看初步定位问题。其中iostat可以给我们提供丰富的IO状态数据。 基本使用 $...
  • qq_35686181
  • qq_35686181
  • 2016年09月06日 22:06
  • 3994

Linux IO流程

Linux IO流程
  • weixin_35921178
  • weixin_35921178
  • 2016年10月04日 14:10
  • 2182

LINUX IO 总结

LINUX IO 总结   磁盘通常是计算机最慢的子系统,也是最容易出现性能瓶颈的地方,因为磁盘离 CPU 距离最远而且 CPU 访问磁盘要涉及到机械操作,比如转轴、寻轨等。访问硬盘和访问内存之间的...
  • zhengfeilong0606
  • zhengfeilong0606
  • 2017年11月13日 16:37
  • 147

两副图让你彻底明白同步IO和异步IO的区别

两副图让你彻底明白同步IO和异步IO的区别
  • laijieyao
  • laijieyao
  • 2015年03月12日 10:30
  • 7506
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:io
举报原因:
原因补充:

(最多只允许输入30个字)