Java IO 流
Java将不同的设备或载体(键盘、文件、网络、管道等)的输入输出数据统称为“流”(Stream),即JAVA的IO都是基于流的。 JAVA传统的所有流类型类都包含在java.io包中。
流的分类方法有很多,例如根据流向分为输入流/输出流,根据角色分为节点流/处理流,
根据数据不同的操作单元,JAVA分为两种基本的流类型,即
- 字节流——以8位(即1byte, 8bit)作为一个数据单元;
- 字符流——以16位(即1char, 2byte, 16bit)作为一个数据单元。
Java依据字符流和字节流,定义了用来操作数据的抽象基类InputStream/Reader 和 OutputStream/Writer,再根据不同应用场景(或功能),在这两种抽象基类上派上出上百个子类,用来满足诸如文件,网络,管道等等不同场景的IO需求,从而形成了Java的基本IO体系。
下面是Java IO体系中常用的流类
以上四个基类提供的部分通用的读和写方法如下,
- int read()-返回的是单个字节数据(字节数据可以直接专程int类型)
- int read(byte[] buf)-返回的是读取到的字节数,真正的数据保存在buf中
- void write(int c)- c既可以是政府,也可以是字节
- void write(byte[] buf 或者 char[] buf)
- void write(String str) - Writer专用