[233]北大Java Week9 流、文件與基於文本的應用

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文件
    • 如圖:
CopyFileAddLineNumber.java
使用java.nio.Files的readAllLines()方法

String filePath 要隨著ReadAllLines.java 做變換

Path的bug

對象的讀與寫

  • ObjectInputStream,ObjectOutputStream,基本數據的讀與寫

  • Serialize 與 deserialize的動作,前者是寫進去;後者是讀出來

  • 要求object實現Serializable 接口

  • 例子:SerializeDemo.java

  • 輸出結果:

Li(18)

Wang(19)

Yen(23)

9.1.3的背單詞 與 9.1.4的網絡流

9.2 文件目錄

上述章節在另外篇章紀錄

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容