简单摘抄一下有关Java输入输出的概念

IO简介:

目的:用于实现“文件、控制台和网络设备之间的通信”。

所谓“流”:

一种抽象的数据的总称呼,本质在于能够进行传输。

按照数据的流向,可分为:输入流和输出流;

按照“流”处理数据的单位,可分为:字节流和字符流。在Java中,字节占一个Byte,八位;字符占两个Byte,16位。

IO框架:

以字节为单位的输入流的框架图:

Java IO

 

1.InputStream是以字节为单位的输入流的超类,提供read()借口从输入流中读取字节数据;

2.ByteArrayInputStream是字节数组输入流,内部包含一个缓冲区,该缓冲区包含从流中读取的字节;

3.PipedInputStream是管道输入流,实现多线程通信中的管道通信;

4.FilterInputStream是过滤输入流;

5.DateInputStream是数据输入流,用来装饰其他输入流;

6.BufferedInputStream是缓冲输入流,为另一个输入流添加缓冲功能;

7.FileInputStream是文件输入流,通常用于对文件的读取。

以字节为单位的输出流的框架图:

Java IO

以字符为单位的输入流的框架图:

Java IO

1.reader是以字符为单位的输入流的超类;

2.CharArrayReader是字符数组输入流;

3.BufferedReader是字符缓冲输入流;

4.InputStreamReader是字节转字符输入流,是字节流向字符流的桥梁;

以字符为单位的输出流的框架图

Java IO

着重介绍遇到的几种输入流:

BufferedReader:

创建BufferReader时,我们会通过它的构造函数指定某个Reader为参数。BufferReader会将该Reader中的数据分批读取,每次读取一部分到缓冲中;操作完缓冲中的这部分数据之后,再从Reader中读取下一部分的数据。

缓冲流可以提高效率。

InputStreamReader

使用指定的字符集读取字节并将它们解码为字符;

字节本质是八个二进制位,不同字符集对同一字节解码后的字符结果不同,因此在读取字符是应制定合适的字符集,避免读取内容产生乱码。

其他

Scanner类

这是一个用于扫描输入文本的新的实用程序

常用方法:nextInt()、next()、nextLine()。

nextInt():只读取int值

next():读取输入直到空格;

nextLine():读取输入,包括单词之间的空格和除回车以外的所有符号。

System.in

用于读取标准输入设备数据,(从标准输入获取数据,一般是键盘)。

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章: