類型 | 字符流 | 字節流 |
---|---|---|
file類型 | fileReader | fileInputStream(字節的輸入輸出) |
memory array類型 | charArrayReader | byteArrayInputStream |
memory String類型 | StringReader | |
pipe管道類型 | pipedReader | PipedInputSream |
類型 | 字符流 | 字節流 |
---|---|---|
緩衝流類型 | bufferedReader | BufferedInputStream |
字節到字符序列化轉換流類型 | InputStreamRead | |
對象流——Object | ObjectInputStream | |
數據流 | DataInputStream/DataOutputStream | |
打印流——Print | PrintWriter | PrintStream |
Filtering類型 | filterReader | filterInputStream |
計數 | LineNumberReader | LineNumberInputStream |
peeking ahead | PushbackReader | PushbackInputStream |
關鍵點:html
文件類型(File)的流是對文件進行讀寫。java
對象類型(Object)的流是將一個對象寫到文件裏面,或者將一個文件裏面的數據按對象形式進行讀取(必須實行Serializable 接口)。編碼
緩衝流(Buffered)能夠一行一行讀和換行的寫。code
數據類型(Date/ByteArray)的流是能夠存取機器無關的java原始數據類型orm
轉換流(InputStreamWriter)但是能夠將把OutputStream轉換成Writer以後就能夠一個字符一個字符地經過管道寫入數據了,並且還能夠寫入字符串。咱們若是用一個FileOutputStream流往文件裏面寫東西,得要一個字節一個字節地寫進去,可是若是咱們在FileOutputStream流上面套上一個字符轉換流,那咱們就能夠一個字符串一個字符串地寫進去。htm
打印流(print)都是輸出流,輸出操做不會拋出異常有自動flush功能,println可用於多種數據類型的輸出對象
//對於PrintWriter來講,當啓用字段刷新以後, 調用println或者printf或者format方法,便會立馬刷新操做(自動刷新). public class PrintStreamDemo { public static void main(String[] args) throws Exception { FileOutputStream fos = new FileOutputStream("text/hello.txt"); PrintStream ps = new PrintStream(fos); //直接使用PrintStream輸出對象,將數據對象寫到了文件裏面 ps.print(new PrintStreamDemo()); } }