Java基础七之输入输出总结

  • 文件

    • File类型

      • File类对象可以表示文件和目录

      • 创建File对象后可以利用它对文件或目录属性进行操作

      • 注:File对象并不能直接对文件内容进行读/写操作,只能查看文件属性

        File f1=new File("text.txt");//为当前项目根目录中text.txt构建了一个File对象
        File f2=new File("D:\\java\\text.java")//通过绝对路径构建File对象
        注:
          1.可以指向一个文件,也可以指向一个文件夹
          2.注意分隔符转义
          3.路径以“/”或“\\”开头,则相对路径的根为当前项目所在磁盘的根目录。
          4.不以“/”开头则相对路径的根为项目根目录,而不是当前类所在目录
        
    • File对文件的基础操作

      • ​掌握常用操作方法

        exists  ifFile isDirectory getName getAbsolutePath length
          createNewFile IOException delete listFiles
        
  • 输出输入流

    • 简述输入输出流

    • Java中输入输出流的类型

      • 流向方向 依据为内存
      • 传输格式 分字节和字符流
    • Java的输入输出流的继承树

      • I/O体系
      • InputStream基础体系
      • OutPutStream基础体系
      • Reader基础体系
      • Writer基础体系
    • 传统输入流的读入线程特性

      • java.io.*包 传统I/O操作,进行数据读取操作时,如果无法读取到需要的内容,会导致线程陷入阻塞状态。
    • 字节输出流

      • OutputStream:抽象类,提供了Java以字节为单位写入数据的公开接口。

      • 字节输出流的统一数据写入方法

        void write(byte[],int off,int len);
        参数:存放写入数据的byte[]  开始位置   长度
        

        close()//关闭输出流并释放与流有关的所有系统资源
        flush()//刷新此输出流并强制写出缓存的输出字节
        write(int b)//将指定的字节写入此输出流
        write(byte[] b)//相当于调用write(b,0,b.length)
        
    • DataOutput

      • 规定一组操作,以一种与机器无关的方式,直接向流中写入基本类型的数据和字符串。 writeXXX()
    • 常见字节输出流工具的作用和使用

      • FilterOutputStream 封装其他输出流,并为其提供额外的功能。
        • 主要实现:
          • BufferedOutputStream 为输出流提供缓冲功能
          • DataOutputStream 实现DataOutput接口,与DataInputStream配合,允许应用程序以与机器无关的方式从底层输出流读写基本Java数据类型和字符串。
          • PrintStream 为其他流添加功能,使他们能方便的打印各种数据值表示形式。
      • FileOutputStream 向数据文件中写入持久化运算结果 进行文件内容写操作的最基本类工具
        • 将内存中数据输出到文件中
        • 5中构造方法重载方式
    • 字节输入流

      • 字节输入流的统一数据读取方法

        int read(byte[] b,int off,int len);
        返回值:读取到的字节数,如果到结尾则返回-1
         参数:存放读取数据的字节数组   偏移量   长度
        
      • InputStream其他重要的方法

        • close available skip read的三种重载方法
    • DataInput

      • 与DataOutput对应 ,读取DataOutput写入的数据
    • 常见字节输入流工具的作用和使用

      • 利用输入输出流进行文件移动或拷贝操作。
      • 回推:用于输入流,以允许读取字节,然后再返回到流中。PushbackInputStream实现这个思想。
      • 标准输入输出 System.in System.out
    • RandomAccessFile 对文件进行随机访问

      • 可以在文件任何位置查找或写入数据

      • 同时实现DataInput和DataOutput接口

      • 磁盘文件都是可以随机访问的,网络中的数据流不是。

        RandomAccessFile in=new RandomAccessFile("data.bin","r");//只读方式打开
        RandomAccessFile inout=new RandomAccessFile("data.bin","rw");//读写方式打开
        

    • ByteArrayOutputStream/ByteArrayInputStream

    • 字符输出流

      • 引入目的

        1. 对于Unicode编码的文件,需要自行将读取到的字节数据根据编码规则还原为字符串,因此有可能出现乱码
        2. 应用中经常用到Unicode编码的文件
      • 字符输出流的统一数据写入方法

        abstract void write(char[] cbuf,int off, int len)
          参数:同OutputStream cbuf存放要写入数据  开始位置  长度
        
      • 其他重要方法

        • close flush write4种重载方法 多了一个写入字符串的方法
    • 字符输出流工具的作用和使用

      • FileWriter
        • 文件写入流
        • 字符流形式对文件进行写操作。
        • 构造方法5种重载方法
        • 将逐个往文件写入字符,效率比较低下,常包装到缓冲流中进行操作。
      • PrintWriter
        • 提供更方便的字符输出格式控制
    • 字符输入流

      • 字符输入流的统一数据写入方法

        abstract int read(char[] cbur,int off,int len)
          //返回值:表示本次实际读取到的字符个数,到达末尾则为-1
          //参数:存放读取数据的char数组  开始位置  长度
        
    • 字符输入流工具的作用和使用

    • 字节流与字符流的适配器

      • InputStreamReader
      • OutputStreamWriter
  • 对象序列化

    • 序列化与反序列化
    • 序列化框架 Hessian
  • NIO

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值