Java高级部分流重点总结上

2016年1月10日19:20:33

Java高级部分流重点总结上

作者:数据分析玩家

1、简述Java中流的重要意义

Java中流的引入,打破了传统意义上输入设备就是键盘,输出设备就是显示器的这种局限性,用户可以自行设计输入设备与输出设备,从而进行数据的传输。

2、简述Java中流的定义

在Java当中,若一个类专门用于数据传输,则这个类称为流

流就是程序和设备之间嫁接以来的一根用于数据传输的管道,这个设备可以是本地硬盘,可以是内存条,也可以是网络所关联的另外一台计算机等等,其中不同管道上有不同的按钮,按下不同的按钮相当于调用不同的方法,这根带按钮的用于数据传输的管道就是流,即流就是一根管道

流一定是类,但类不一定是流

3、简述Java中流的分类

按照数据流的方向不同分为输入流与输出流、按照处理数据单位的不同分为字节流与字符流、按照功能的不同分为原始流与包裹流。

输入流与输出流:所谓输入流就是通过输入管道从指定的设备当中读取数据,

例如键盘。所谓输出流就是通过输出管道向指定的设备当中写入数据,例如显示器。其中输入与输出是相对于程序的角度而言的,Java当中的输入流类似与C语言中的scanf,Java当中的输出流类似于C语言中的printf。

字节流与字符流:字节流处理数据的单位是一个字节,字符流处理数据的单位是一个字符,在Java当中一个字符相当于两个字节。

原始流:可以从一个特定的设备即数据 源中读写数据的流,就像是一条单一的管道接到水龙头上开始放水。

包裹流:所谓包裹流就是由于原始流的功能太简单了,对原始流进行一定的加工处理—在原始流的基础上套一个功能比较强大的管子,这个管子称为包裹流。包裹流类似于在一条已经存在的管子套上另外一根管子。

原始流与包裹流的关键区别在于能不能直接连接到设备

4、为什么要使用包裹流,必须要先定义原始流?

因为包裹流中那些很常用的,功能跟强大的按钮,它们的内部也是以原始流的方式来进行实现的,包裹流无非是对原始流进行一定的加工处理,提供一些更加强大的功能。

5、简述抽象类的定义

抽象类是为了更好的对类加以分类,抽象类通常情况下是作为一个类族的最顶层的父类,如植物。并用最底层的类来描述现实世界中的具体事物。抽象类不能定义出抽象类的实例对象,因为植物等只是一个具体的概念,不存在具体的事物,但是却可以定义出抽象类的引用。

6、简述四大基本抽象流的相关概念

所谓四大基本抽象流就是四大基本抽象类,四大基本抽象流包括字节流和字符流,其中字节流包括InputStream和OutPutstream,字符流包括Reader和Writer,并且凡是以Stream结尾的都是字节流

字节流与字符流的方法一模一样,仅仅是处理数据的单位不一样

InputStream是所有字节输入流的父类、OutputStream是所有字节输出流的父类;Reader是所有字符输入流的父类,Writer是所有字符输出流的父类

7、在Java的IO包中,常用的具体流有哪些?

在java的Io包中,常用的具体流如下:

原始流:文件流和输出流

文件流:

FileInputStream      FileReader

FileOutputStream     FileWriter

输出流:

PrintStream

包裹流:缓冲流、转换流、数据流

缓冲流:

BufferedInputStream      BufferedReader

BufferedOutputStream     BufferedWriter

转换流:

                        InputStreamReader

                       OutputStreamWriter

数据流:

DatainputStream

DataOutputStream

8、简述缓冲区的相关概念

1>一般的缓冲区指的都是内存,缓冲区可以起到对硬盘的保护作用,并提高程序的运行速度

2>带缓冲区的流,读入的数据先写到缓冲区,在写到指定的设备当中

3>默认的缓冲区属于系统的优化,在外界是看不到的,因此编写完程序之后要记住刷新缓冲区,因为数据默认的是先写到缓冲区里面,如果不刷新缓冲区,输出设备当中可能是空的,可能没有数据

4>程序结束之后要注意关闭流从而释放与该流相关的所有系统资源

9、简述Java中文件流、输出流、缓冲流、转换流、数据流的相关作用

文件流:Java中的文件流可以将一个文件的内容按字节或字符为单位来进行读写、复制

输出流:PrintStream在OutputStream基础之上提供了增强的功能,可以将基本类型数据格化后的字符串进行输出,类似于C语言中的printf函数,而不是仅限于输出字节类型

缓冲流:缓冲流就是带有缓冲区的输入输出流,带缓冲区的流比不带缓冲区的流运行速度要快,因为此时此刻不是读一个写一个,而是读取完之后先放到缓冲区里面,在一次性写到指定的设备当中

转换流:InputStreamReader的作用是将输入字节流转换成字符流

                OutputStreamWriter的作用是将输出字节流转换成字符流

数据流:Java中的数据流能够以一种与机器无关的方式,直接从底层字节输入流当中读取基本类型数据或者直接将基本类型数据写到字节输出流当中,即数据流可以将基本类型数据的二进制直接读入或写出

                                                                                                                                                                                         2016年1月10日21:03:27

 

 

 

 

你可能感兴趣的:(Java高级部分流重点总结上)