Java IO

File:文件操作

wKiom1VRzQ-QBcfBAAKUcfeTCFM970.jpg

RandomAccessFile:隨機讀寫流,文件內容操作

wKiom1VSsGfQY-uzAAOaEUgIorM982.jpg


字節流(byte)

    OutputStream:抽象類,從程序輸出

wKioL1VStIjjGBYdAAGp-YqFJDY405.jpg

wKiom1VSucXTf15ZAAJn8ktBkQo227.jpg

        換行:\r\n

    InputStream

wKioL1VSwx7wLe3aAAFRxH-PlwI236.jpg

wKioL1VSyYqCVzQeAAJwj0Fzf_Y516.jpg


字符流

    Writer:輸出流

wKiom1VS5gujzZb0AAHVGIpmKlY499.jpg

wKioL1VS5_PBE_i8AAH9UsoXm0M671.jpg

    Reader:輸入流

wKiom1VS5-OzG9bmAAFrrkmUX8E989.jpg

wKioL1VS6V2DkkFCAAK4hHbjXYc236.jpg

字節流操作時不會用到緩衝區,字符流會。


wKioL1VS6n7AzDBHAAEPzKrCy_8419.jpg

wKiom1VS6QTiOYUiAADZceC7e1E998.jpg

轉換流

    OutputStreamWriter:Writer的子類,將輸出的字符流變爲字節流

    InputStreamReader:Reader的子類,將輸入的字節流變爲字符流


內存操作流

    ByteArrayInputStream:內容寫入內存

    ByteArrayOutputStream:從內存讀出內容

wKiom1VTAuvSLvN8AAI7NNadBKg161.jpg

wKiom1VTBpSRsyfAAALKJEKcglU049.jpg

管道流:兩個線程之間的通信,必須把輸出流連在輸入流上

    PipedOutputStream:管道輸出流,從線程輸出內容

    PipedInputStream:管道輸入流,內容寫入線程

wKiom1VTCp_ghg_9AAS19WAf6mc630.jpg

打印流

    PrintStream

    裝飾設計模式

wKioL1VTDvzCI3QRAAI61DasO5s153.jpg

wKiom1VTDaqDI-1BAAFeApxv6Jg094.jpg

    printf()方法:格式化輸出

wKiom1VTD56haBrJAAC1Zedy5eM973.jpg

wKioL1VTERjTFT4ZAAIv8VTaMW4719.jpg

System類對IO的支持

wKiom1VTEDDwzrobAADS2jMSz48705.jpg

    System.out:PrintStream的對象


    System.err:PrintStream的對象,用來輸出程序錯誤

wKioL1VTExfjG8xjAAEmNN_BPWI226.jpg

    System.in:鍵盤輸入流,是InputStream類型對象

wKioL1VTE9-icGEJAAFEEmZ6xEY560.jpg

輸入/輸出重定向

wKioL1VTFzaCrMbAAADy6sR38u0780.jpg

wKiom1VTGMbS8HDQAAFY06-CqeY709.jpg

BufferedReader:用於從緩衝區讀取內容

wKiom1VTGgzAgvk6AADAl3tQAuw291.jpg

    構造方法只能接收字符輸入流的實例

    鍵盤輸入數據

wKioL1VTHn2AJ5HbAAI0Ixn72h8704.jpg

Scanner類

wKiom1VUC9GCwtIFAAKtLRDnFos601.jpg


wKiom1VUDWnit0nEAAEuquBDtv4859.jpg

數據操作流

    DataOutputStream:程序寫入文件

wKioL1VUEaWC_orzAAH476Y4IZY729.jpg

wKiom1VUGNTwP0vuAALzQ53hL1A153.jpg

    DataInputStream:專門負責讀取使用DataOutputStream輸出的數據

wKiom1VUFWDwodIsAAFuOvnvabs569.jpg


合併流

    SequenceInputStream

wKioL1VUGo2h40YxAADn65VyTrU372.jpg

wKiom1VUGXuxzzO2AAHx89E9pGs274.jpg

壓縮流

    ZipOutputStream:壓縮文件、文件夾

wKioL1VUHiCTlkt-AAEl3G1jaiM155.jpgwKiom1VUQKCQ507UAAOVx8xgYzc748.jpg   

    ZipFile

wKioL1VUQMXi5GveAAJedmMdLNA646.jpg

    ZipInputStream

wKioL1VURB_RQQyhAADTgop8G1U004.jpg

wKioL1VURXXCOvtGAAQQHutdVC8660.jpg

回退流

    PushbackInputStream

wKiom1VURnvCwsH7AAHTXHjbUE4912.jpg

wKiom1VURuXjOMb3AAFeeg66A8s284.jpg

wKiom1VUStqh_1XMAAJxDI4X6OU983.jpg


字符編碼

    編碼轉換方法:public byte[] getBytes(String charset)


對象序列化:只有屬性被序列化

    必須實現java.io.Serializable接口

    ObjectOutputStream:對象輸出流

wKioL1VUWCKTwz3dAAC-9yYtLYQ397.jpg

wKiom1VUVqiT67glAAGGcV3cl3A289.jpg

    ObjectInputStream:對象輸入流

wKiom1VUV6azVrUbAADr_R-ojYs800.jpg

wKioL1VUWSDizf_NAAGKkuSx-Is598.jpg

    Externalizable接口

wKioL1VUX7DwXCKhAAOKFU6Izfw657.jpg

    transient關鍵字:使用Serializable接口實現序列化時,不希望被序列化的屬性,可以用transient進行聲明


序列化一組對象


483


wKiom1VUYsGjx5U7AAIEWkL_4-E620.jpg

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