目录
一、IO流
1.概述
I表示intput,是数据从硬盘进内存的过程,称之为读。
O表示output,是数据从内存到硬盘的过程,称之为写。
2.流的特性
1)先进先出:最先写入输出流的数据最先被输入流读取到。
2)顺序存取:可以一个接一个地往流中写入一串字节,读出时也将按写入顺序读取一串字节,不能随机访问中间的数据。(RandomAccessFile除外)
3)只读或只写:每个流只能是输入流或输出流的一种,不能同时具备两个功能,输入流只能进行读操作,对输出流只能进行写操作。在一个数据传输通道中,如果既要写入数据,又要读取数据,则要分别提供两个流。
3.流的定义
流是指一连串流动的字符,是以先进先出方式发送信息的通道。
4.Java中常用IO流的类
1)字节流的抽象父类
InputStream 输入流
OutputStream 输出流
2)字符流的抽象父类
Reader 字符读取流
Writer 字符写入流
5.IO流主要的分类方式有以下3种
1)按数据流的方向:输入流、输出流
2)按处理数据单位:字节流、字符流
3)按功能:节点流、处理流
二、字节流
1.字节流抽象基类
1)InputStream:这个抽象类是表示字节输入流的所有类的超类
2)OutputStream:这个抽象类是表示字节输出流的所有类的超类
3)子类名特点:子类名称都是以其父类名作为子类名的后缀
2.分类
1)按照数据流向:
输入流:读入数据
输出流:写出数据
2)按照数据类型:
<1>字节流
字节输入流 读入数据 InputStream
字节输出流 写出数据 OutputStream
<2>字符流
字符输入流 读取数据 Reader
字符输出流 写出数据 Writer
3.字节输入流
1)定义
使用输入流InputStream读取字节,文件输入流即FileInputStream
2)构造方法
FileInputStream(String name);
FileInputStream(File name);
字节输入流的read方法以字节为为单位读取源中的数据。
3)读取方式
方法名 | 说明 |
int read() | 输入流调用该方法从源中读取单个字节的数据,该方法返回字节值(0-255之间的一个整数),如果未读出字节就返回-1. |
int read(byte b[]) | 输入流调用该方法从源中试图读取b.length个字节到字节数组b中,返回实际读取的字节数目。如果未到达文件的末尾,则返回-1. |
int read (byte b[],i |