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