Java IO 是一套Java用来读写数据(输入和输出)的API。大部分程序都要处理一些输入,并由输入产生一些输出。Java为此提供了java.io
包,主要涉及文件,网络数据流,内存缓冲等的输入输出。
Java IO中的一个核心概念是流(Stream)
从外部(包括磁盘文件、键盘、网络套接字)读入到内存(程序)中的数据序列称为输入流。
从内存(程序)写入到外部设备的数据序列称为输出流。
流中的数据既可以是未经加工的原始二进制数据,也可以是经一定编码处理后符合某种格式规定的特定数据。因此Java中的流分为两种:
字节流:数据流中最小的数据单元是字节,多用于读取或书写二进制数据;
字符流:数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节;
字节流 | 字符流 | |
输出流 | OutputStream | Writer |
输入流 | InputStream | Reader |
表格的为Java IO流中的四大基流。
这四大基流都是抽象类,其他流都是继承于这四大基流的。
下图是一个描述输入流和输出流的类层次图:
我明天才继续总结字符流和字节流的用法吧~需要睡觉了~