首页 > 代码库 > 再论流之字节流和字符流

再论流之字节流和字符流

Java定义了两种类型的流:字节流和字符流。字节流为处理字节的输入和输出提供了方法。例如,当读取和写入二进制数据时,使用的就是字节流。字符流为处理字符的输入和输出提供了方便的方法。它们使用Unicode编码,所以可以被国际化。另外一点:在最底层,所有I/O仍然是面向字节的。基于字符的流只是为处理字符提供了一种方便和高效的方法。

字节流类

字节流是通过两个类层次定义的。在顶级是两个抽象类:InputStream和OutputStream。每个抽象类都有几个处理各种不同设备的具体子类。

流类                                                                                 
含义                                                                                 
BufferedInputStream
缓存的输入流
BufferedOutputStream
缓存的输出流
ByteArrayInputStream
读取字节数组内容的输入流
ByteArrayOutputStream
向字节数组写入内容的输出流
DataInputStream
包含读取Java标准数据类型的方法的输入流
DataOutputStream
包含读取java标准数据类型的方法的输出流
FileInputStream
读取文件内容的输入流
FileOutputStream
向文件中写入内容的输出流
FilterInputStream
实现InputStream
FilterOutputStream
实现OutputStream
InputStream
描述流输入的抽象类
ObjectInputStream
用于对象的输入流
ObjectOutputStream
用于对象的输出流
OutputStream
描述流输出的抽象类
PipedInputStream
输入管道
PipedOutputStream
输出管道
PrintStream
包含print()和println()的输出流
PushbackInputStream
支持1字节“unget”的输入流,这种流向输入流返回1个字节
SequenceInputStream
由两个或多个按顺序依次读取的输入流组合而成的输入流


再论流之字节流和字符流