2017-08-07(一) 蓋樓[233]
流、文件以及基本文本的應用
9.1 輸入輸出流
9.2 文件及目錄
9.3 正式表達
9.1.1 流與分類
- 流:把不同類型的輸入、輸出都抽象為流
- java.io包
- 有很多類型的流:文件流、內存流、網路流(如下圖)
- 依照(輸入, 輸出)、(字節流, 字符流)有四種類型:InputStream,OutputStream,Reader,Writer
- InputStream: public int read(byte b[]); 返回讀入字節數
- OutputSream: write()方法 將字節寫入流中,也有另外兩種方法flush(),close()
- 流又分成節點流、處理流:
- Node Stream:文件、內存 FileInputStream,ByteArrayInputStream
- Process Stream:BufferedReader
- 通常有File就是屬於node Stream,如果是有關Buffer or Data conversion 屬於Process Stream
9.1.2標準輸入與標準輸出
- System.in(InputStream 類型)
- System.out(PrintStream 類型)
常見內容的讀寫
二進制
文本
對象
示例:Dump.java
目的:把一個流複製到另一個流
字符的讀寫
- 常見的編碼:UTF-8,ASCII,GB2312, 系統默認編碼
-
CopyFileAddLineNumber.java
- 目的是將java文件�的//後的內容刪除,並且輸出text文件
- 如圖:
使用java.nio.Files的readAllLines()方法
這裡有趣的是要調整path,否則code會出錯
String filePath 要隨著ReadAllLines.java 做變換
對象的讀與寫
ObjectInputStream,ObjectOutputStream,基本數據的讀與寫
Serialize 與 deserialize的動作,前者是寫進去;後者是讀出來
要求object實現Serializable 接口
輸出結果:
Li(18)
Wang(19)
Yen(23)
9.1.3的背單詞 與 9.1.4的網絡流
9.2 文件目錄
上述章節在另外篇章紀錄