Java输入/输出
Java的输入输出是以流(stream)的方式来处理的。如字节流、字符流等。
流式输入、输出的特点是数据的获取和发送均按数据序列顺序进行。
Java系统提供两个最基本的类:InputStream(输入流类)和OutputStream(输出流类)及它们的子类对字节流进行处理。
Java提供Reader类和Writer类及它们的子类对字符流进行处理。
这些类都包含在java.io包中。
Java的输入、输出类库
用于实现 I/O 操作的流类和接口在java.io包中。
流的概念
流:
是同一台计算机或网络中不同计算机之间的有序运动的数据序列
数据流 :
输入数据流:外设流入计算机的数据序列。
输出数据流:计算机流向外设的数据序列。
数据序列:
可以是原始的二进制字节数据,也可以是经过特定编码处理的有格式的数据。
什么是数据流?
数据流是对各种流的总称。每个流本身都是一个类。
我们使用数据流读文件或写文件。
输入流只能读文件不能写文件,输出流只能写文件不能读文件。
数据流概念
我们把数据的输入流和数据输出流统称为数据流。
数据流分类
按照数据 流动方向 分为:输入流和输出流
按照数据 流动成分 分为:字节流、字符流、缓冲流等等。
数据流模型
在程序中,使用输入流,可以从键盘或文件中读取数据:使用输出流,可向显示器、打印机或文件中传输数据。
字节流
字节流有两个超类,也就是两个抽象类,它们是字节输入流(InputStream)和字节输出流(OutputStream)。
InputStream类是所有字节输入流的超类。
OutputStream类是所有字节输出流的超类。
InputStream的类层次图
InputStream类的常用方法:
int read()
输入流调用该方法从数据源中读取单个字节的数据,该方法返回字节值(0~255之间的一个整数)。如果未读出字节就返回-1.int read(byte b[])
输入流调用该方法从数据源中试图读取b.length个字节到b中,返回实际读取的字节数目。如果到达文件的末尾,则返回-1.int read (byte b[],int off ,int len)
输入流调用该方法从数据园中试图读取len个字节得到b中,并返回实际读取的字节数目。如果到达文件的末尾,则返回-1.参数off指定从字节数组的某个位置开始存放读取的数据。void close()
输入流调用该方法关闭输入流。long skip(long numBytes)
输入流调用该方法跳过numBytes个字节,并返回时机跳过的字节数目。