IO流


     在Java IO中流既可以是字节流(以字节为单位进行读写),也可以是字符流(以字符为单位进行读写)。

一。

       1.字节流处理的单元是一个字节,用于操作二进制文件(计算机中所有文件都是二进制文件)。分输入流:java.io.InputStream和输出流:java.io.OutputStream

      2.字符流就是:字节流 + 编码表。字符流的抽象基类:Reader , Writer。

      3.缓冲流:可以通过减少读写次数来提高输入和输出的速度。它们内部有一个缓冲区,用来提高处理效率。其内部也是封装了字节/字符数组,可以指定缓冲区的大小。没有指定缓冲区大小,默认的字节是8192。。首先缓冲区输入流会将读取到的数据读入缓冲区,当缓冲区满时,或者调用flush方法,缓冲输出流会将数据写出。

      4.序列流:对多个流进行合并。SequenceInputStream 表示其他输入流的逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。构造函数有SequenceInputStream(InputStream s1, InputStream s2) 和SequenceInputStream(Enumeration<? extends InputStream> e)

      5. 对象的序列化是将内存中的对象直接写入到文件设备中。对象的反序列化: 将文件设备中持久化的数据转换为内存对象。

基本的序列化由两个方法产生:一个方法用于序列化对象并将它们写入一个流,另一个方法用于读取流并反序列化对象。ObjectInputStream、ObjectOutputStream

      6.可以和流相关联的集合对象是Properties。Properties(继承Hashtable):该集合不需要泛型,因为该集合中的键值对都是String类型。Properties只加载key=value这样的键值对,与文件名无关,注释使用#。

      7.打印流。PrintStream是一个字节打印流,System.out对应的类型就是PrintStream。PrintWriter是一个字符打印流。

      8.操作数组的流对象。操作字节数组的是ByteArrayInputStream以及ByteArrayOutputStream。操作字符数组的是CharArrayReader和CharArrayWriter。

      9.操作基本数据类型的流对象。DataInputStream 从数据流读取字节,并将它们转换为正确的基本数据类型值或字符串。对应的写的就是DataOutputStream 将基本类型的值或字符串转换为字节,并且将字节输出到数据流。



二。File类

      File类关心的是在磁盘上文件的存储。
      File类描述的是一个文件或文件夹。(文件夹也可以称为目录)
      文件包含很多的信息:如文件名、创建修改时间、大小、可读可写属性等。



三。java IO用途:

  • 文件访问
  • 网络访问
  • 内存缓存访问
  • 线程内部通信(管道)
  • 缓冲
  • 过滤
  • 解析
  • 读写文本 (Readers / Writers)
  • 读写基本类型数据 (long, int etc.)
  • 读写对象



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值