一、裝飾者模式(decorator)
動態地將責任附加到對象上。若要擴充功能,裝飾者提供了比繼承更有彈性的替代方案。
(裝飾者可以在所委託被裝飾者的行為之前與/或之後,加上自己的行為,以達到特定的目的)
java.io包中的裝飾者
抽象組件有:InputStream; OutputStream; Reader; Writer
二、流
Java中對檔案的操作是以流的方式進行的。流是Java記憶體中的一組有序資料序列。Java將資料從源(檔案、記憶體、鍵盤、網路)讀入到記憶體中,形成了
流,然後將這些流還可以寫到另外的目的地(檔案、記憶體、控制台、網路),之所以稱為流,是因為這個資料序列在不同時刻所操作的是源的不同部分。
三、類分層結構
- java.lang.Object
- java.io.File
(implements java.lang.Comparable<T>, java.io.Serializable)
- java.io.FileDescriptor
- java.io.InputStream
(implements java.io.Closeable)
- java.io.ByteArrayInputStream
- java.io.FileInputStream
- java.io.FilterInputStream
- java.io.BufferedInputStream
- java.io.DataInputStream
(implements java.io.DataInput)
- java.io.LineNumberInputStream
- java.io.PushbackInputStream
- java.io.ObjectInputStream
(implements java.io.ObjectInput, java.io.ObjectStreamConstants)
- java.io.PipedInputStream
- java.io.SequenceInputStream
- java.io.StringBufferInputStream
- java.io.ObjectInputStream.GetField
- java.io.ObjectOutputStream.PutField
- java.io.ObjectStreamClass
(implements java.io.Serializable)
- java.io.ObjectStreamField
(implements java.lang.Comparable<T>)
- java.io.OutputStream
(implements java.io.Closeable, java.io.Flushable)
- java.io.ByteArrayOutputStream
- java.io.FileOutputStream
- java.io.FilterOutputStream
- java.io.BufferedOutputStream
- java.io.DataOutputStream
(implements java.io.DataOutput)
- java.io.PrintStream
(implements java.lang.Appendable, java.io.Closeable)
- java.io.ObjectOutputStream
(implements java.io.ObjectOutput, java.io.ObjectStreamConstants)
- java.io.PipedOutputStream
- java.security.Permission
(implements java.security.Guard, java.io.Serializable)
- java.security.BasicPermission
(implements java.io.Serializable)
- java.io.SerializablePermission
- java.io.FilePermission
(implements java.io.Serializable)
- java.io.RandomAccessFile
(implements java.io.Closeable, java.io.DataInput, java.io.DataOutput)
- java.io.Reader
(implements java.io.Closeable, java.lang.Readable)
- java.io.BufferedReader
- java.io.CharArrayReader
- java.io.FilterReader
- java.io.InputStreamReader
- java.io.PipedReader
- java.io.StringReader
- java.io.StreamTokenizer
- java.lang.Throwable
(implements java.io.Serializable)
- java.lang.Exception
- java.io.IOException
- java.io.CharConversionException
- java.io.EOFException
- java.io.FileNotFoundException
- java.io.InterruptedIOException
- java.io.ObjectStreamException
- java.io.InvalidClassException
- java.io.InvalidObjectException
- java.io.NotActiveException
- java.io.NotSerializableException
- java.io.OptionalDataException
- java.io.StreamCorruptedException
- java.io.WriteAbortedException
- java.io.SyncFailedException
- java.io.UnsupportedEncodingException
- java.io.UTFDataFormatException
- java.io.Writer
(implements java.lang.Appendable, java.io.Closeable, java.io.Flushable)
- java.io.BufferedWriter
- java.io.CharArrayWriter
- java.io.FilterWriter
- java.io.OutputStreamWriter
- java.io.PipedWriter
- java.io.PrintWriter
- java.io.StringWriter
介面分層結構
- java.io.Closeable
- java.io.DataInput
- java.io.DataOutput
- java.io.FileFilter
- java.io.FilenameFilter
- java.io.Flushable
- java.io.ObjectInputValidation
- java.io.ObjectStreamConstants
- java.io.Serializable