知识点:
数据源:键盘、硬盘、内存、网络或程序
数据格式:ASCII字符串、Unicode字符串、图形、图像和声音
Java引入“流”以及有关的“流类”来处理数据输入/输出的复杂性。程序和外界的数据交换可以通过流来实现,当程序要从数据源获得数据时就在程序和数据源之间建立输入流对象;而当程序要把结果输送到数据宿时,就在程序和数据宿之间建立输出流。
java.io.File
java.io.InputStream
java.io.Outputstream
java.io.Reader
java.io.Writer
java.io.RandomAccessFile
★字节输入流/输出流类
ByteArrayInputStream
FileInputStream DataInputStream
PipedInputStream BufferedInputStream
InputStream: FilterInputStream------- PushbackInputStream
SequenceInputStream CheckedInputStream
ObjectInputStream InflaterInputstream(压缩数据流类)
StringBufferInputStream
ByteArrayOutputStream
FileOutputStream DataOutputStream
PipedOutputStream BufferedOutputStream
OutputStream: FilterOutputStream------- DeflaterOutputStream(解压数据流类)
SequenceOutputStream CheckedOutputStream
ObjectOutputStream Printstream
StringBufferOutputStream
定义自己的输入/输出包装类需要继承FilterInputstream/FilterOutputStream
★字符输入流/输出流类
InputStreamReader---- FileReader
BufferedReader
Reader CharArrayReader------ LineNumberReader(读取一行数据返回行号)
PipedReader
FilterReader--------- PushbackReader
StringReader
OutputStreamWriter---- FileWriter
CharArrayWriter
Writer PipedWriter
FilterWriter
StringWriter
Decorator设计模式
在程序中用一个对象(the Decorator)包装另外的一个对象,这是一种被称为Decorator的设计模式
如果要设计自己的IO包装类,需要继承FilterXXX命名的类