java中输入输出流

一、介绍

java语言定义了许多类专门负责各种方式的输入/输出,这些类都被放在java.io包中。其中,所有输入流类都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类;而所有输出流都是抽象类OutputStream(字节输出流)或抽象类Writer(字符输出类)的子类。

二、输入流

InputStream类是字节输入流的抽象类,是所有字节输入流的父类。InputStream类的具体层次结构。该类中所有方法遇到错误时都会引发IOException异常。(用于处理字节的)

InputStream类的层次结构
InputStream AudioInputStream
ByteArrayInputStream
StringBufferInputStream BufferedInputStream
DataInputStream
PushbackInputStream
……
FileInputStream
FilterInputStream
InputStream
ObjectInputStream
SequenceInputStream
PipedInputStream

对该类的常用方法如下:

1、read()方法:从输入流中读取数据的下一个字节。返回0~255范围内的int字节值。如果已经到达流末尾而没有可用的字节,则返回值为-1。

2、read(byte[] b):从输入流中读入一定长度的字节,并以整数的形式返回字节数。

3、mark(int readlimit)方法:在输入流的当前位置放置一个标记,readlimit参数告知此输入流在标记位置失效之前允许读取的字节数。

4、reset()方法:将输入指针返回到当前所做的标记处。

5、skip(long n)方。法:跳过输入流上的n个字节并返回实际跳过的字节数。

6、markSupported()方法:如果当前流支持mark()/reset()操作就返回true。

7、close方法:关闭输入流并释放与该流关联的所有系统资源。

注意:并不是所有的InputStream类的子类都这次InputStream中的定义的所有方法,如skip()、mark()、reset()等方法只对某些子类有用。

Reader类用于处理字符文本的输入,是字符输入流的抽象类,所有字符输入流的实现都是它的子类。Reader类中的方法与InputStream类中的方法类似。(用于处理字符的)

Reader类的具体层次结构

Reader CharArrayReader
BufferedReader LineNumberReader
FilterReader PushbackReader
InputStreamReader FileReader
PipedReader
StringReader

三、输出流

OutputStream类是字节的输出流的抽象类,此抽象类是表示字节流的所有类的超类。

OutputStream类的层次结构
OutputStream ByteArrayOutputStream
FileOutputStream BufferedOutputStream
DataOutputStream
……
FilterOutputStream
ObjectOutputStream
OutputStream OutputStream
PipedOutputStream

OutputStream类中的所有方法:

1、write(int b)方法:将指定的字节写入此输出流。

2、write(byte[] b)方法:将b个字节从指定的byte数组写入此输出流。

3、write(byte[] b,int off,int len)方法:将指定byte数组中从偏移量off开始的len个字符写入此输出流。

4、flush()方法:彻底完成输出并清空缓存区。

5、close()方法:关闭输出流。

Writer类是字符输出流的抽象类,所有字符输出类的实现都是它的子类。

Writer类的层次结构
writer BufferedWriter FileWriter
CharArrayWriter
FilterWriter
OutputStreamWriter
PipedWriter
PrintWriter
StringWriter

你可能感兴趣的:(java,开发语言)