java_IO小結

I/O:程序與外部世界間的接口(文件,網絡,內存)

流的基本概念

  流是一個抽象的概念。當Java程序需要從數據源讀取數據時或輸出數據到目的地時,會開啓一個到數據源的流。數據源(目的地)可以是文件,內存或者網絡等。

  流分爲字節流和字符流。字節(byte)流需要用戶讀入後進行相應的編碼轉換,而字符(char)流讀取數據時會把數據按照JVM的默認編碼自動轉換成字符。

  字節流:InputStream和OutputStream,字符流:Reader和Writer。

        字節(byte)---》解碼--》字符(char)     /0x880x660x55-->中國

        字符(char)-->編碼-->字節(byte)                     /中國->/0x880x8608x5

字節流

  

  

  輸入流中跟數據源直接接觸的類有:FileInputStream ByteArrayInputStream,他們分別實現了從文件或者內存中的字節數組讀入數據到輸入流。  

  跟數據目的地直接接觸的類有:FileOutputStream ByteArrayOutputStream,前者實現了把數據流寫入文件的功能,後者實現了一個輸出流,其中的數據被寫入一個       byte   數組。

其他的輸入流、輸出流處理類都是裝飾類(Decorator模式),下面對他們進行一下簡單介紹:

    BufferedInputStream: 提供了緩衝功能。

    DataInputStream: 允許應用程序以與機器無關方式從底層輸入流中讀取基本 Java 數據類型。應用程序可以使用數據輸出流寫入稍後由數據輸入流讀取的數據。

    BufferedOutputStream: 提供了緩衝功能的輸出流,在寫出完成之前要調用flush來保證數據的輸出。

    DataOutputStream: 數據輸出流允許應用程序以適當方式將基本 Java 數據類型寫入輸出流中。然後,應用程序可以使用數據輸入流將數據讀入。

字符流

  

 

  

 

流中的其他方法

  Writer或者OutputStream中的flush(): 刷新該流的緩衝,用於確保數據的輸出。

  close(): 關閉流並釋放與之關聯的所有系統資源。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章