java中流的种类,按功能和内容分别介绍?

Python08

java中流的种类,按功能和内容分别介绍?,第1张

1、从功能上:输入流、输出流。

输入流就是从外部输入数据到程序,输出流就是从程序输出数据到外部。

外部就是只硬盘、数据库、网络等。

2、从结构上:字节流、字符流。

字节流是操作字节集的,字符流是操作字符串的。

字符串转换为字节集也可以通过字节流进行传输。

3、从来源上:节点流、过滤流。

节点流好像也叫原始流,过滤流好像也叫装饰流,不记得了。

过滤流操作的本质也是节点流,就像List的本质是数组一样。

这个很抽象,你学了就知道。

不行你就再百度一下吧。

Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer。Java中其他多种多样变化的流均是由它们派生出来的.

字符流和字节流是根据处理数据的不同来区分的。字节流按照8位传输,字节流是最基本的,所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。

1.字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串;

2. 字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,而字符流就可以。

读文本的时候用字符流,例如txt文件。读非文本文件的时候用字节流,例如mp3。理论上任何文件都能够用字节流读取,但当读取的是文本数据时,为了能还原成文本你必须再经过一个转换的工序,相对来说字符流就省了这个麻烦,可以有方法直接读取。

字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节, 操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!