Java IO最重要的5个类File、OutputStream、InputStream、Writer、Reader以及一个接口Serializable
File类:对文件进行操作
字节流:OutputStream、InputStream
字符流:Writer、Reader
Serializable接口:对象序列化
转换流:InputStreamReader、OutputStreamWriter——将字节流转换为字符流
缓冲流:BufferedReader——读取缓冲区的内容
内存操作流:ByteArrayInputStream、ByteArrayOutputStream——与内存的数据进行操作交互
打印流:打印数据
Scanner类:完成数据的输入功能,以及对输入的数据进行验证
合并流:SequenceInputStream——将两个文件内容合并成一个文件
压缩流:压缩为zip格式
数据流的概念和划分:
流是Java中用来处理输入输出的方式。面对不同的数据,Java提供了不同的流。流根据方向可分为输入和输出两种,输入流是将数据源传递给程序;输出流是将数据从程序传递到目的地,如内存、文件、网络。
Java程序的所有读写操作都是通过流来实现的。根据组成流的不同,可以将其分为字节流和字符流,字节流是由字节组成的,主要用在处理二进制数据。字符流是由字符组成的,主要用于处理文本数据。(一个字节有8b,一个字符由两个字节组成)
字节流:
- InputStream——输入
- OutputStream——输出
字符流:
- Reader——输入
- Writer——输出
在这里,InputStream、OutputStream、Reader、Writer均为抽象类,在实际编程中,一般根据不同的情况选择其对应的子类。
另外,在java.lang包中有一个内置流——System类,其有3个预定义的流变量:in,out,err。
标准输入流:System.in,输入键盘的数据
标准输出流:System.out,向显示器输出
标准错误流:System.err,向显示器输出