在变量、数组和对对象中存储的数据是暂时的,程序结束后它们会自动消失。为了能够永久地保存程序创建的数据,需要将其保存在磁盘文件中,这样就可以在其他程序中使用它们。Java的I/O技术可以将数据保存到文本文件,二进制文件甚至是ZIP压缩文件中,以达到永久性保存数据的要求。
流概述
流是一组有序的数据序列,根据操作的类型,可分为输入流和输出流。I/O(Input/Output,输入输出) 流提供了一条通道程序,可以使用这条通道把源中的字节序列送到目的地。虽然I/O流通常与磁盘文件存取有关,但是程序的源和目的地也可以是键盘、鼠标、内存或显示器窗口等。
Java由数据流处理输入/输出模式,程序从指向源的输入流中读取源中的数据。源可以是文件、网络、压缩包或其他数据源。
输出流的指向是数据要到达的目的地,程序通过向输出流中写入数据把信息传递到目的地。输出流的目标可以是文件、网络、压缩包或其他数据源。
输入/输出流
Java语言定义了许多类专门负责各种方式的输入输出,这些类都被放在java.io包中。其中,所有的输入流类都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类;而所有输出流都是抽象类OutputStream(字节输出流)或抽象类Writer(字符输出流)的子类。
输入流
InputStream类是字节输入流的抽象类,是所有字节输入流的父类。InputStream类的具体层次结构如下: