本文共 3816 字,大约阅读时间需要 12 分钟。
1、在java中stream代表一种数据流(源),javaio的底层数据元,---(想像成水龙头)Java IO通过Stream(流)来实现。关于流,可以理解为是一种“数据的管道”。管道中流动的东西可以是基于字节,也可以是基于字符的等。就好像管道里面可以流动水,也可以流动石油一样。
而对应于流还有一个概念:输入、输出设备。这些设备可以是磁盘文件、键盘(输入设备)、显示器(输出设备)、打印机(输出设备)、网络套接字等等。
下面,我们就来了解“流”。
Java中定义了两种类型的流:字节型,和字符型。
字节流:处理字节的输入和输出。包括读写二进制数据等方面的内容。
字符流:处理字符的输入和输出。他采用的是Unicode编码,可以实现国际化。使用字符流的另外一个好处就是:字符流比字节流更有效率。
字节流:
字节流包含两个顶层抽象类:InputStream和OutputStream。
1:字节流的两个顶层类是抽象类,分别是:InputStream和OutputStream。
2:每个抽象类都有子类来实现具体的功能,处理不同的设备的输入和输 出。
下面简单介绍字节流的几个常用子类:::
字节流类 | 功能简单介绍 |
DataInputStream | 包含了读取Java标准数据类型的输入流 |
DataOutputStream | 包含了写Java标准数据类型的输出流 |
ByteArrayInputStream | 从字节数组读取的输入流 |
ByteArrayOutputStream | 写入字节数组的输出流 |
FileInputStream | 从文件读入的输入流 |
FileOutputStream | 写入文件的输出流 |
PrintStream | 包含最常见的Print()和Println()的输出流 |
PushbackInputStream | 返回一个字节到输入流,主要用于编译器的实现 |
PipedInputStream | 输出管道 |
PipedOutputStream | 输入管道 |
SequenceInputStream | 将n个输入流联合起来,一个接一个按一定顺序读取 |
RandomAccessFile | 随机访问文件 |
BufferInputStream | 缓冲输入流 |
BufferOutputStream | 缓冲输出流 |
FilterInputStream | 实现了InputStream Interface |
FilterOutputStream | 实现了OutputStream Interface |
InputStream | 抽象类,描述流的输入 |
OutputStream | 抽象类,描述流的输入 |
抽象类InputStream和OutpurStream定义了实用的方法,其中最主要的是read()和
write()。这两个方法在InputStream和OutputStream中声明为抽象方法,由子流类overwrite实现。
2:每个抽象类都有子类来实现具体的功能,处理不同的设备的输入和输 出。
下面简单介绍字节流的几个常用子类:::
字节流类 | 功能简单介绍 |
DataInputStream | 包含了读取Java标准数据类型的输入流 |
DataOutputStream | 包含了写Java标准数据类型的输出流 |
ByteArrayInputStream | 从字节数组读取的输入流 |
ByteArrayOutputStream | 写入字节数组的输出流 |
FileInputStream | 从文件读入的输入流 |
FileOutputStream | 写入文件的输出流 |
PrintStream | 包含最常见的Print()和Println()的输出流 |
PushbackInputStream | 返回一个字节到输入流,主要用于编译器的实现 |
PipedInputStream | 输出管道 |
PipedOutputStream | 输入管道 |
SequenceInputStream | 将n个输入流联合起来,一个接一个按一定顺序读取 |
RandomAccessFile | 随机访问文件 |
BufferInputStream | 缓冲输入流 |
BufferOutputStream | 缓冲输出流 |
FilterInputStream | 实现了InputStream Interface |
FilterOutputStream | 实现了OutputStream Interface |
InputStream | 抽象类,描述流的输入 |
OutputStream | 抽象类,描述流的输入 |
抽象类InputStream和OutpurStream定义了实用的方法,其中最主要的是read()和
write()。这两个方法在InputStream和OutputStream中声明为抽象方法,由子流类overwrite实现。
转载地址:http://oqemb.baihongyu.com/