java中的“流”是什么?

Python015

java中的“流”是什么?,第1张

Java中的流是个抽象的概念,当程序需要从某个数据源读入数据的时候,就会开启一个数据流,数据源可以是文件、内存或网络等等。相反地,需要写出数据到某个数据源目的地的时候,也会开启一个数据流,这个数据源目的地也可以是文件、内存或网络等等\x0d\x0a\x0d\x0aJava中的流可以从不同的角度进行分类:\x0d\x0a按照流的方向不同:分为输入流和输出流。\x0d\x0a按照处理数据单位的不同:分为字节流(8位)和字符流(16位)。\x0d\x0a按照功能不同:分为节点流和处理流。\x0d\x0a节点流:是可以从一个特定的数据源(节点)读写数据的流(例如文件,内存)。就像是一条单一的管子接到水龙头上开始放水。\x0d\x0a处理流:是“连接”在已经存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能。就像在已经接了一条管子(节点流)的基础上,又套上几个更粗,具有特殊功能的管子(处理流)对流出的水进一步的处理。\x0d\x0a四种基本流InputStream,OutputStream,Reader,Writer又分别有更具体的子类,分为文件流,缓冲流,数据流,转换流,Print流,Object流等,都分别有特定的功能或用来操作特定的数据

流的概念:流分为字节流、字符流(数据类型);输入流、输出流(数据方向);节点流、处理流(数据功能)。

三种分类是根据不同的概念来划分的;流有四个抽象类:InputStream 、OutputStream、Reader、Writer;其中前两个是字节流处理时候是通过输入或输出字节形式的;后面两个是通过字符来处理的读取或写入每个字符;在java中输入输出写入读取是从程序的方向上去辨别的,这一点不要搞混了。

什么是节点流?

简单的例子:比如说从某个文件中读取数据把这个文件当做一个大桶,现在用个管道直接连接在这个大桶上进行抽水此时这跟管道就是节点流;当感觉这个管道不够抽水用的了,在其外面套上一个大的抽水管道,此时这个大的管道就相当于处理流;