Java中的流分爲兩種:java
字節流:數據流中最小的數據單元是字節;數組
字符流:數據流中最小的數據單元是字符,Java中的字符是Unicode編碼,一個字符佔用兩個字節。dom
FileInputStream.read(byte b[])編碼
FileOutputStream.write(byte b[])spa
程序從輸入流(Input Stream)讀取數據源至buffer; 程序向輸出(Output Stream)流寫入buffer數據. 採用數據流的目的就是使得輸出輸入獨立於設備,並不關心數據的目的和來源是何種設備。3d
裝飾模式code
ByteArrayOutputStream: 能夠捕獲內存緩衝區的數據,轉換成字節數組。對象
ByteArrayInputStream: 能夠將字節數組轉化爲輸入流。blog
ObjectInputStream: 從輸入流中讀取對象;能夠把InputStream包裝到ObjectInputStream中,而後就能夠從中讀取對象了;(序列化對象能夠重寫:public final Object readObject() throws IOException, ClassNotFoundException{})內存
ObjectOutputStream:把對象寫入到輸出流中;能夠把OutputStream包裝到ObjectOutputStream中,而後就能夠把對象寫入到該輸出流中了 ( 序列化對象能夠重寫: public final void writeObject(Object obj) throws IOException {})