stream代表的是任何有能力產出數據的數據源,或是任何有能力接收數據的接收源。
在Java的IO中,所有的stream(包括Input和Out?stream)都包括兩種類型:
.1????以字節為導向的stream
2????以Unicode字符為導向的stream
1.1????以字節為導向的stream
以字節為導向的stream,表示以字節為單位從stream中讀取或往stream中寫入信息。以字節為導向的stream包括下面幾種類型:
1)????input stream:
1)????ByteArrayInputStream:把內存中的一個緩沖區作為InputStream使用
2)????StringBufferInputStream:把一個String對象作為InputStream
3)????FileInputStream:把一個文件作為InputStream,實現對文件的讀取操作
4)????PipedInputStream:實現了pipe的概念,主要在線程中使用
5)????SequenceInputStream:把多個InputStream合并為一個InputStream
2)????Out stream
1)????ByteArrayOutputStream:把信息存入內存中的一個緩沖區中
2)????FileOutputStream:把信息存入文件中
3)????PipedOutputStream:實現了pipe的概念,主要在線程中使用
4)????SequenceOutputStream:把多個OutStream合并為一個OutStream
2????以Unicode字符為導向的stream
以Unicode字符為導向的stream,表示以Unicode字符為單位從stream中讀取或往stream中寫入信息。以Unicode字符為導向的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對應
以字符為導向的stream基本上對有與之相對應的以字節為導向的stream。兩個對應類實現的功能相同,字是在操作時的導向不同。如CharArrayReader:和ByteArrayInputStream的作用都是把內存中的一個緩沖區作為InputStream使用,所不同的是前者每次從內存中讀取一個字節的信息,而后者每次從內存中讀取一個字符。
凡是有該標志的文章,都是該blog博主Caoer(草兒)原創,凡是索引、收藏
、轉載請注明來處和原文作者。非常感謝。