Java教程

IO流的分类

本文主要是介绍IO流的分类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

IO流的分类

一、IO流的作用

  • 数据在各个设备之间的传输,是通过流的方式完成的

二、IO流的分类

按照流动方向:输入流、输出流(内存中数据的流动)

 

 

按照处理数据单位不同:字节流(InputStreeam,OutputStream)、字符流(Reader,Writer)

  • 程序中的输入和输出都是以流的形式保存的,流中保存的实际上全是字节文件。

  • 所有文件的存储都是字节(byte)来存储,在磁盘上保留的并不是文件的字符,而是先把字符编码成字节,再存储这些字节到硬盘上,在读取时也是一个一个的读取以形成序列

 

 

  1>字节流:数据流中最小的数据单元是字节。

  2>字符流:数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节。

按照功能不同:节点流,处理流

  • 节点流:可以从某节点读数据或向某节点写数据的流

  • 处理流:对已存在的流的连接和封装,实现更为丰富的流数据处理,提高流读写效率

 

 

  1>程序用于直接操作目标设备所对应的类叫节点流。

  2>程序通过一个间接流类去调用节点流类,以达到更加灵活方便地读写各种类型的数据,这个间接流类就是处理流。

    节点流

  • 节点流:可以从某节点读数据或向某节点写数据的流

  • 处理流:对已存在的流的连接和封装,实现更为丰富的流数据处理,提高流读写效率

 

 

    缓冲流

    (1)对I/O进行缓冲是一种常见的性能优化,缓冲流为I/O流增加了内存缓冲区,增加缓冲区的两个目的:

      1>允许Java的I/O一次不只操作一个字符,这样提高䇖整个系统的性能;
      2>由于有缓冲区,使得在流上执行  skip、mark  和  reset  方法都成为可能。

    (2)缓冲流:它是要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法。例如:BufferedReader中的readLine方法,BufferedWriter中的newLine方法

    转换流

    InputStreamReader:将字节流转换为字符流

    OutputStreamWriter:将字符流转换为字节流

    数据流(DataInputStream、DataOutputStream)

这篇关于IO流的分类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!