标签:
读取的方法
int read()
int read(byte[] buffer)
int read(byte[] buffer,int offset,int length)
ByteArrayInputStream
FileInputStream
PipedInputStream,
主要用在多线程中线程间通信,一个线程通过管道输出流发送数据,
而另一个线程通过管道输入流读取数据,这样可实现两个线程间的通讯。
StringBufferInputStream
SequenceInputStream :把多个 InputStream 合并为一InputStream .
“序列输入流”类允许应用程序把几个输入流连续地合并起来,并且使它们像单个输入流一样出现。
每个输入流依次被读取,直到到达该流的末尾。
然后“序列输入流”类关闭这个流并自动地切换到下一个输入流。
FilterInputStream
BufferedInputStream(继承于FilterInputStream)
注意:printStream也是继承了FilterInputStream,所以它可以对输入进行格式化
ObjectInputStream
附:InputStream,OutputStream类的继承关系图:
and:
*********************************************************
对应方法:
int read()
int read(char[] buffer)
int read(char[] buffer,int offset,int length)
Writer的方法,比较特殊,增加了2个:
void write(int c)
void write(char[] cbuf)
void write(char[] cbuf,int offset,int length)
void write(String string)//字符串跟字符数组关系很紧密
void write(String string,int offset,int length)
CharArrayReader(与ByteArrayInputStream对应,一个是字符数组,一个是字节数组)
FileReader(与FileIputStream对应,不过父类层次不同,FileReader是转换流InputStreamReader的子类,因为内部有字符的转换过程)
InputStreamReader(FileReader就是继承了它)
PipedReader(与PipedInputStream对应)
StringReader(与StringBufferInputStream对应)
FilterReader
BufferedReader(与BufferedInputStream对应,不过不是继承FilterReader)
PrintWriter
ObjectReader(与ObjectInputStream对应)
**************特别提醒,两个转换流********************
InputStreamReader(字节到字符)和 OutputStreamReader(字符到字节):
从字节流到字符流的桥梁:它读入字节,并根据指定的编码方式,将之转换为字符流。
使用的编码方式可能由名称指定,或平台可接受的缺省编码方式
InputStreamReader的read()方法之一的每次调用,可能促使从基本字节输入流中读取一个或多个字节。
为了达到更高效率,考虑用 BufferedReader 封装 InputStreamReader,
如:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
将多个字符写入到一个输出流,根据指定的字符编码将多个字符转换为字节
每个 OutputStreamWriter 合并它自己的 CharToByteConverter, 因而是从字符流到字节流的桥梁。
附上:字符流Reader,Writer的类继承关系图:
and:
标签:
原文地址:http://www.cnblogs.com/tommy-huang/p/4322558.html