02_Java的IO流(面试)_字节流和字符流的区别以及输入流和输出流的区别

2 字节流和字符流的区别以及输入流和输出流的区别

1:字符流和字节流是流的一种划分,按照处理流的方式进行的划分。
两类都分为输入和输出操作。

2:在字节流中输出数据主要是使用 OutputStream 完成,输入使用的是 InputStream。
在字符流中输出主要是使用 Writer 类完成,输入流主要使用 Reader 类完成。
这四个都是抽象类。

3:字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串。
而字节流处理单元为 1 个字节,操作字节和字节数组。

4:字节流是最基本的,所有的InputStrem和OutputStream的子类都是字节流,主要用在处理二进制数据,它是按字节来处理的。

5:实际文本,又提出了字符流的概念,它是按虚拟机的编码来处理,也就是要进行字符集的转化,这两个之间通过InputStreamReader,OutputStreamWriter(转换流)来关联,实际上是通过 byte[]和 String来关联的。

6:流就像管道一样,在程序和文件之间,输入输出的方向是针对程序而言,向程序中读入东西,就是输入流,从程序中向外读东西,就是输出流。
输入流是得到数据,输出流是输出数据。

你可能感兴趣的:(Java的IO流(面试))