(一) Input 和Output
stream:具有输出数据的源头或者可以接受数据的源头。
在JAVA中IO中,所有的stream都包括两种类型,即Input和Output。Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。
Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换。而类 InputStreamReader 和 OutputStreamWriter 处理字符流和字节流的转换。字符流(一次可以处理一个缓冲区)一次操作比字节流(一次一个字节)效率高。
InputStream 和 OutputStream是以字节流为导向的,以下就进行一下归纳总结:
1、Inputstream族
public abstract class InputStream extends Objectimplements Closeable{...}
FileInputStream:把一个文件作为InputStream,实现对文件的读取操作 。
PipedInputStream:实现了pipe的概念,主要在线程中使用 。
FilterInputStream:子类可进一步重写类中的部分方法,并且子类还可以提供一些额外的方法和字段。
----用于封装以字节为导向的InputStream :
----BufferedInputStream:使用缓冲区
----DataInputStream:从stream中读取基本类型(int、char等)数据
----LineNumberInputStream:可以记录input stream内的行数,然后可以调用getLineNumber()和setLineNumber(int)
ByteArrayInputStream:把内存中的一个缓冲区作为 InputStream 使用 。
SequenceInputStream:把多个 InputStream 合并为一个 InputStream . “序列输入流”类允许应用程序把几个输入流连续地合并起来, 并且使它们像单个输入流一样出现,每个输入流依次被读取,直到到达该流的末尾。
StringBufferInputStream:把一个 String 对象作为 InputStream 。
ObjectInputStream:对基本数据和对象进行反序列化。
2、OutputStream族
public abstract class OutputStream extends Objectimplements Closeable, Flushable{...}
FileOutputStream:文件输出流是向 File 或 FileDescriptor 输出数据的一个输出流。
PipedOutputStream:实现了pipe的概念,主要在线程中使用
ByteArrayOutputStream: 把信息存入内存中的一个缓冲区中 . 该类实现一个以字节数组形式写入数据的输出流。 当数据写入缓冲区时,它自动扩大
SequenceOutputStream:把多个OutStream合并为一个OutStream
ObjectOutputStream:对基本数据和对象进行序列化。
(二) Reader和Writer
以 Unicode 字符为导向的 stream ,表示以 Unicode 字符为单位从 stream 中读取或往 stream 中写入信息。
Reader/Writer 为 abstact 类
以下总结一下以 Unicode 字符为导向的 stream :
1、Reader 族
public abstract class Reader extends Objectimplements Readable, Closeable{...}
BufferedReader:与BufferedInputStream对应
CharArrayReader :与 ByteArrayInputStream 对应,此类实现一个可用作字符输入流的字符缓冲区
FilterReader:
---- FileReader :与 FileInputStream 对应
InputStreamReader:把一个以字节为导向的InputStream转换成一个以字符为导向的InputStream
PipedReader :与 PipedInputStream 对应
StringReader:与StringBufferInputStream对应
2、Writer族
public abstract class Writerextends Objectimplements Appendable, Closeable, Flushable{...}
BufferedWriter:与BufferedOutputStream对应
CharArrayWriter:与 ByteArrayOutputStream 对应
FilterWriter:
---- FileWriter:与 FileOutputStream 对应
OutputStreamWriter:把一个以字节为导向的InputStream转换成一个以字符为导向的InputStream
PipedWriter:与 PipedOutputStream 对应
StringWriter: 一个字符流
------- android培训、 java培训、期待与您交流! ----------