IO流学习

1.字节流(缓冲)
    父类: InputStream/OutputStream
        FileInputStream("相对路径") - 输入流
            read() - 读单个字节
            read(byte[]) - 字节数组

        FileOutputStream("相对路径",true) - 输出流
            write(int)
            write(byte[])
            write(bute[],int off, int len)

    缓冲字节流:
        BufferedInputStream(底层字节流)
        BufferedOutputStream(底层字节流)

    字节流作用: 文件的复制


2.字符流(缓冲)
    Reader/Writer

    底层流:
        InputStreamReader(底层字节流)
        OutputStreamWriter(底层字节流,"GBK")

    缓冲流:
        BufferedReader(底层字符流)
        PrintWriter( - 是否刷新缓冲区
            new OutputStreamWriter - 指定编码方式
                new FileOutputStream - 是否进行追加
        )

对象流:
  1.父类:InputStream/OutputStream
  2.序列化
        1).对象 -> 文件[字节]
        2).Serializable - 接口
            a.接口中没有常量,也没有抽象方法,是个空接口
            b.作用:用于标记是可序列化的
        3)关键词:
            a.serialVersionUID: 给类添加固定的序列版本号
              ①.变量必须是long类型修饰
              ②.必须是public static final修饰
              ③.序列化后的版本编号,不指定的话,会自动生成一串新的序列号,是随着类的内容改变而改变

            b.transient:
              ①.用于修饰变量,在序列化的时候,值会被忽略
              ②.使用场景:在传输的过程中,不想别人看到的属性值就是用transient

      反序列化
        文件[字节] -> 对象

  3.子类/实现类:
      1).ObjectInputStream
        (1)创建:
            new ObjectInputStream(底层字节流)
        (2)常用API:
            Object readObject()

      2).ObjectOutputStream
        (1)创建
            new ObjectOutputStream(底层字节流)
        (2)常用API:
            void writeObject(Object obj)

 

 

RandomAccessFile - 文件的[随机]访问
  1.随机:操作文件的位置 -> pointer
          1.获取当前指针位置
          2.跳过对应的字节数 -> 顺序
          3.跳转到指定的指针位置
  2.特点:
      a.基于文件指针的操作,是一个可读可写的类
      b.文件指针停留在哪儿,就可以操作文件的那个位置
      c.也可以手动指定文件指针的位置

  3.创建:
      new RandomAccessFile("文件路径","模式")
         模式:
             r - 读
             w - 写
             rw - 可读可写

  4.指针位置的操作:
      void skipBytes(跳过字节个数)
      long getFilePointer() - 获取当前指针位置
      void seek() - 定位到文件指定的位置

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值