1. 程式人生 > >Java中IO流的分類及應用

Java中IO流的分類及應用

serializa 對象序列化 col io流 pip ava 應用 指定 pipe

=======I/O==========================================================================

File:代表了磁盤上的文件或者目錄

I/O:jvm和外部數據源的數據交換。File,db—in-àjvm---out-àfile,db

流一共有三種分類:

方向分:輸入流和輸出流;

單位分:字節流和字符流;

字節流:

InputStream/OutputStream 字節流的父接口

(1)FileInputStream/FileOutputStream 文件字節流 ((可以向下轉換))

DataInputStream/DataOutputStream 讀寫8種基本類型和以UTF-8讀寫String

BufferedInputStream/BufferedOutputStream 帶緩沖的輸入/出流

PrintStream 融合Data和Buffered, System.out所屬的類

Piped 管道 用於線程間交換數據

RandomAccessFile 隨機訪問文件

字符流:處理字符編碼問題

Reader/Writer 字符流的父接口

FileReader/FileWriter 文件字符流,和FileInputStream/FileOutputStream 文件流,

((可以向下轉換)) 與上面的(1)是相等,

只不過一個是字節流,下面是字符流,所以兩個無法相傳

InputStreamReader/OutputStreamWriter 橋轉換 將字節流轉成字符流 在橋轉換的過程中,可以制定編解碼方式

BufferedReader/PrintWriter 有緩沖

字符流轉換為字節流時,指定編解碼方式是在橋轉換時指定的。

功能分:節點流和過濾流;

節點流:用於傳輸數據。

過濾流:幫助節點流更好的傳輸數據。

piped(管道節點流):用於兩個線程間傳輸數據。一個線程的輸出,是另一個線程的輸入。

對象序列化:

把對象放在流上傳輸ObjectInputStream/ObjectOutputStream

只有實現了Serializable接口的對象才能序列化

用transient修飾的屬性,為臨時屬性,不參與序列化,只能修飾對象的屬性。

Java中IO流的分類及應用