java中的流

相對於程序而言

  • 按方向分有:輸入流和輸出流
  • 按類型分有:字符流(unicode編碼一個字符兩個字節8位*2如中文)和字節流(一個字符一個字節8位都是英文)因此有存在的必要
  • 按功能分有:節點流(直接套在數據源上)和處理流(套在節點流或處理流上)

按節點流類型分

類型 字符流 字節流
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

IO流總結

  • 關鍵點: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());
    	}
     
    }
相關文章
相關標籤/搜索