概念
IO是input和output的首字母缩写,input是输入数据,output是输出数据。Java 中IO 是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。
分类
从数据运输方式来分可分为字节流和字符流。
字节流
以字节为单位传输数据的流,处理二进制文件。
字符流
以字符为单位传输数据的流,处理处理文本文件。编码不同,一个字符可以有不同数量的字节。
简单来说,字节给计算机看,字符给人看。
IO类及相关方法
IO类有4个最基本的抽象类:InputStream、OutputStream、Reader、Writer。
InputStream
输入数据,数据单位为字节
方法:
- public abstract int read()
- public void close()
- public long skip(long n)
OutputStream
输出数据,数据单位为字节
方法:
- public abstract void write()
- public void close
Reader
输入数据,数据单位为字符
方法:
- public int read()
- public long skip(long n)
- abstract public void close()
Writer
输出数据,数据单位为字符
方法:
- public void write (int c)
- abstract public void close()
- public void write(String str)
四大抽象类的子类被分为节点流和处理流。
节点流
直接和数据源相连
处理流
包装在节点流之上,提供方法大量输入输出数据