每天学习一点点

每天学习一点点(一)

 

1.    选择题

java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分类,按功能分为:( ),如果为读取的内容进行处理后再输出,需要使用下列哪种流?( )
A、输入流和输出流 

B、字节流和字符流 

C、节点流和处理流 

DFile stream 

EPipe stream 

FRandom stream 

GFilter stream

刚开始的时候我选的是BG,因为觉得字符流和字节流很熟悉,而且觉得字符流和字节流这样子来区分一个处理字符,一个处理字节,觉得这也是一种功能划分,看了答案后才知道自己错了,我们来分析下。

java.io 
Class FilterInputStream

java.lang.Object

  java.io.InputStream

      java.io.FilterInputStream

 

官方的注解是这样的:

A FilterInputStream contains some other input stream, which it uses as its basic source of data, possibly transforming the data along the way or providing additional functionality. The class FilterInputStream itself simply overrides all methods of InputStreamwith versions that pass all requests to the contained input stream. Subclasses of FilterInputStream may further override some of these methods and may also provide additional methods and fields.

 

一个FilterInputStream 包含一些其他的输入流,作为一个基本数据源,可能通过一些方式改变数据或者作为提供一些额外的功能。FilterInputStream 这个类知识简单的继承了InputStream的所有的方法,使之用于向基本输入流发出各种请求,FilterInputStream 得子类可以进一步的继承这些方法并提供额外的方法和字段。

 

从上面一段话我们可以看出来,FilterInputStream 就是简单的封装了InputStream我们回到题目,为什么要选C呢,很简单,第一,节点流包括了字符流和字节流,第二,我们看下节点流和处理流的区别:

节点流:用于直接操作设备所对应的类叫节点类,节点流类所对应的IO源或者目标称为流节点,比如用一个类和某个文件或者网络直接相关联,那么这个类就叫做节点流类,那么这个文件或者这个网络就叫做流的节点。

处理流:程序也可以通过一个间接的流类去调用节点流类,以达到更加灵活的读写各种类型的数据,比如要通过网络传输对象,我们就设计一种对象流的类,它可以把对象写入到网络当中去。那么这个类实际上是调用底层的网络流类。

通俗的讲也就是

      节点流:从特定的地方读写的流

       处理流:使用节点流作为输入或输出。是使用一个已经存在的输入流或输出流连接创建的。

       个人理解就是一个是原生数据,一个是加工后的数据,打个比方就是google发出来的android系统叫做原生系统,而厂商基于原生系统定制的系统成为处理后的系统。我们要选用哪个系统这个事情就是按照功能来选的(表达不行,嘻嘻)

 

嗯,今天就说这个啦,碎觉了。

你可能感兴趣的:(Stream,filter,处理流,节点流)