javaIO的类-备忘

Java类库中的I/O类分成输入和输出两部分,通过继承,任何自InputStream或Reader派生而来的类都含有名为read()的基本方法,用于读取单个字节或字节数组;同样,任何自OutputStream或Writer派生的类都含有名为write()的方法,用于写单个字节或字节数组。

我们很少使用单一的类来创建流对象,而是通过叠合多个对象来提供所期望的功能(装饰器模式)。

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

InputStream类型
类 数据源类别 功能 来源和去除
ByteArrayInputStream 字节数组 允许将内存的缓冲区当做InputStream CharArrayReader
StringBufferInputStream(已弃用) String对象 将String转换成InputStream StringReader
FileInputStream 文件 用于从文件中读取信息 FileReader
PipedInputStream 管道 产生用于写入相关PipedOutputStream的数据,实现管道化概念 PipedReader
SequenceInputStream 其他种类流组成的序列,以便合并流 将两个或者多个InputStream对象转换成单一InputStream 无
FilterInputStream 其他数据源,如Internet连接 抽象类,作为装饰器的接口 FilterReader

 

 

 

 

 

 

 

FilterInputStream类型
类   功能 来源和去处
DataInputStream   按照可移植方式从流读取基本数据类型 除了readLine(),则仍正常使用DataInputStream
BufferedInputStream   防止每次都得进行实际写操作,代表使用缓冲区 BufferedReader
LineNumberInputStream(已弃用)   跟踪输入流中的行号,可调用getLineNumber()和setLineNumber() LineNumberReader
PushbackInputStream  

具有“能弹出一个字节的缓冲区”。因此可以将督导的最后一个字符回退

 PushbackReader

 

 

 

 

 

 

OutputStream类型
类   功能 来源和去处
ByteArrayOutputStream   在内存中创建缓冲区,所有送往流的数据都要放置在此缓冲区中 CharArrayWriter
FileOutputStream   用于将信息写至文件 FileWriter
PipedOutputStream   任何写入其中的信息都会自动作为相关PipedOutputStream的输出,实现管道化概念 PipedWriter
FilterOutputStream   抽象类,作为装饰器的接口 FilterWriter
      (无对应类)StringWriter

 

 

 

 

 

FilterOutputStream
类   功能 来源和去处
DataOutputStream   同InputStream 无
PrintStream   用于产生格式化输出,其中DataOutputStream处理数据的存储,PrintStream处理显示 PrintWriter
BufferedOutputStream   避免每次都实际写,可以调用flush清空缓冲区 BufferedWriter
      StreamTokenizer(使用Reader的构造器)

 

 

 

 


 

Reader和Writer主要是为了国际化,老的I/O仅支持8位的字节流,不能很好地处理16位的Unicode字符。

InputStream和OutputStream向Reader和Writer的转换用到了"适配器",InputStreamReader,OutputStreamWriter

* 尽量尝试用Reader和Writer,而一旦无法成功编译,则使用面向字节的类库,如java.util.zip是面向字节的

* 无论何时使用readLine(),都不应该使用DataInputStream,而应该使用BufferedReader


 

RandomAccessFile适用于由大小已知的记录组成的文件。

实现了InputStream和OutputStream接口,但未适用它们的任何功能,它是一个完全独立的类

只有RandomAccessFile支持搜寻方法,并且只适用于文件。

 

posted @ 2012-12-31 11:40  韶纥  阅读(259)  评论(0)    收藏  举报