以字節為導向的stream
================================================================================
1) input stream:
1) ByteArrayInputStream: 把內存中的一個緩沖區作為InputStream使用
2) StringBufferInputStream:把一個String對象作為InputStream
3) FileInputStream: 把一個文件作為InputStream,實現對文件的讀取操作
4) PipedInputStream: 實現了pipe的概念,主要在線程中使用
5) SequenceInputStream:把多個InputStream合并為一個InputStream
6) FilterInputStream
2) Out stream
1) ByteArrayOutputStream:把信息存入內存中的一個緩沖區中
2) FileOutputStream: 把信息存入文件中
3) PipedOutputStream: 實現了pipe的概念,主要在線程中使用
4) SequenceOutputStream: 把多個OutStream合并為一個OutStream
5) FilterOutputStream
以Unicode字符為導向的stream
================================================================================
表示以Unicode字符為單位從stream中讀取或往stream中寫入信息。
1) Input Stream
1) CharArrayReader: 與ByteArrayInputStream對應
2) StringReader: 與StringBufferInputStream對應
3) FileReader: 與FileInputStream對應
4) PipedReader: 與PipedInputStream對應
2) Out Stream
1) CharArrayWrite: 與ByteArrayOutputStream對應
2) StringWrite: 無與之對應的以字節為導向的stream
3) FileWrite: 與FileOutputStream對應
4) PipedWrite: 與PipedOutputStream對應
差異
================================================================================
InputStreamReader和OutputStreamReader:
把一個以字節為導向的stream轉換成一個以字符為導向的stream。
stream添加屬性
================================================================================
通過FilterInputStream和FilterOutStream的子類,我們可以為stream添加屬性。
實現“先把要寫入文件的數據先緩存到內存中,再把緩存中的數據寫入文件中”的功能時,
上面的API就沒有一個能滿足我們的需求了。
但是通過FilterInputStream和FilterOutStream的子類,為FileOutStream添加我們所需要的功能。
2.2 FilterInputStream的各種類型
2.2.1 用于封裝以字節為導向的InputStream
1) DataInputStream: 從stream中讀取基本類型(int、char等)數據。
2) BufferedInputStream: 使用緩沖區
3) LineNumberInputStream:會記錄input stream內的行數,然后可以調用getLineNumber()
和setLineNumber(int)
4) PushbackInputStream: 很少用到,一般用于編譯器開發
2.2.2 用于封裝以字符為導向的InputStream
1) 沒有與DataInputStream對應的類。除非在要使用readLine()時改用BufferedReader,
否則使用DataInputStream
2) BufferedReader:與BufferedInputStream對應
3) LineNumberReader:與LineNumberInputStream對應
4) PushBackReader:與PushbackInputStream對應
2.3 FilterOutStream的各種類型
2.2.3 用于封裝以字節為導向的OutputStream
1) DataIOutStream: 往stream中輸出基本類型(int、char等)數據。
2) BufferedOutStream:使用緩沖區
3) PrintStream: 產生格式化輸出
2.2.4 用于封裝以字符為導向的OutputStream
1) BufferedWrite:與對應
2) PrintWrite:與對應
3. RandomAccessFile
1) 可通過RandomAccessFile對象完成對文件的讀寫操作
2) 在產生一個對象時,可指明要打開的文件的性質:r,只讀;w,只寫;rw可讀寫
3) 可以直接跳到文件中指定的位置