IO流
-
针对程序而言,IO流即输入输出流
输入:外部数据写入程序,例如编辑Word文档
输出:程序中的数据传入外部设备,例如打开某个Word文档。
-
分类
-
按流的方向分类:输入流,输出流
-
按处理/传输的数据单元:字节流(名命上以Stream结尾),字符流(名命上以Reader/Writer结尾)
***使用什么流进行数据传输,就看源数据是以什么形式存在的
-
按处理的对象不同分类:
-
节点流:直接链接数据源的流对象。如FileputStreeam,FileReader,DataputStream等
-
处理流:不直接连接到数据源或目的地,它们的作用是处理 “流”,如BufferedInputStream,BufferedReader等,处理流也叫包装流
***节点流处于IO操作的第一线,所有的操作都必须通过节点流进行,而处理流则可以对节点流进行包装,提高性能或提高程序的灵活性。
-
-
-
四大IO流:(所有IO类的抽象父类)
注意:抽象类不可以实例化,数据的读取需要由它的子类去实现。
-
InputStream(以Stream都为以字节流方式输入或输出)
-
常用方法
-
int read():读取一个字节的数据,并将字节的值作为int 类型返回(1btye=8bit,故值的取值范围是0-255)
-
void close();关闭输入流对象,释放相关系统资源
用完IO流时要及时关闭IO流对象,以防造成系统资源的浪费
-
-
-
OutputStream(以字符流的方式输出)
-
int write(int n):写入一个字节的数据,返回int型数据(1btye=8bit,故值的取值范围是0-255)
-
void close();关闭输入流对象,释放相关系统资源
-
-
Reader(以字符流方式输入)
-
int read();从流中读取一个字符的数据,返回一个int值(0-65535之间的一个值,即Unicode值)
-
void close();关闭流对象,释放系统相关资源
-
-
Writer(以字符流方式输出)
-
void write(int n) :向输出流中写入一个字符
-
void close();关闭流对象
-
Java.IO包下需掌握的流(16个)
* 文件专属:
java.io.FileInputStream
java.io.FileOutputStream
java.io.FileReader
java.io.FileWriter
* 转换流:
java.io.InputStreamReader
java.io.OutputStreamWriter
* 缓冲流专属:
java.io.BufferReader
java.io.BufferWriter
java.io.BufferInputStream
java.io.BufferOutputStream
* 数据流专属:
java.io.DataInputStream
java.io.DataOutputStream
* 对象专属流:
java.io.ObjectInputStream
java.io.ObjectOutputStream
* 标准输出流:
java.io.PrintWriter
java.io.PrintStream
-