所有的程序都离不开信息的输入和输出。例如,从键盘读取数据、在网络上交换数据、打印报表、读写文件信息等,都要涉及数据输入输出的处理。在面向对象语言中,输入和输出都是通过数据流来实现的。在Java中,处理数据流的类主要被放在java.io包中 。
数据流的基本概念:
数据源(Data Sourcc):是指那些能够提供数据的地方,包括键盘、磁盘文件、网络接口等。
数据宿(Data Sink):指能够接收数据的地方,可以是磁盘文件、网络接口以及显示器、打印机等外部设备。(数据宿也可认为是数据传输的目的地)
数据流
考虑到数据源的多样性,为了更有效地进行数据的输入、输出操作,Java中把不同的数据源与程序之间的数据传输都抽象表述为“流”(stream),以实现相对统一和简单的输入/输出操作方式。传输中的数据就像流水一样,也称为数据流。
根据数据流所关联的是数据源还是其他数据流,可分为节点流(Node Stream)和处理流(Processing Stream)
按传输数据的“颗粒大小”划分,可分为字符流(Character Stream)和字节流(Byte Stream)
注意:Java采用的命名惯例有助于我们区分字节流类型和字符流类型:凡是以InputStream