在I/O中有着“流”的抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象。
Java类库中的I/O类分成输入和输出两部分。
输入:
通过继承,任何自Inputstream或Reader派生而来的类都含有名为read()的基本方法,用于读取单个字节或者字符数组。
输出:
任何自OutputStream或Writer派生而来的类都含有名为write()的基本方法,用于写单个字节或者字符数组。
InputStream类型
InputStream的作用是用来表示那些从不同数据源产生输入的类。这些数据源包括:
1)字节数组
2)String对象
3)文件
4)“管道”,工作方式与实际管道相似,即,从一端输入,从另一端输出。
5)一个由其他种类的流组成的序列,以便我们可以将它们收集合并到一个流内。
6)其他数据源,如Internet连接等。
类 | 功能 | 构造器参数/如何使用 |
ByteArrayInputStream | 允许将内存的缓冲区当作InputStream使用 | 缓冲区,字节将从中取出 作为一种数据源:将其与FilterInputStream对象相连以提供有用接口 |
StringBufferInputStream | 将String转换成InputStream | 字符串。底层实现实际使用StringBuffer 作为一种数据源:将其与FilterInputStream对象相连以提供有用接口 |
FileInputStream | 用于从文件中读取信息 | 字符串,表示文件名、文件或FileDescriptor对象 作为一种数据源:将其与FilterInputStream对象相连以提供有用接口 |
PipedInputStream | 产生用于写入相关PipedOutput Stream的数据。实现管道化概念 | PipedOutputStream 作为多线程中的数据源:将其与FilterInputStream对象相连以提供有用接口 |
SequenceInputStream | 将两个或多个InputStream对象转换成单一InputStream | 两个InputStream对象或一个容纳InputStream对象的容器Enumeration 作为一种数据源:将其与FilterInputStream对象相连以提供有用接口 |
FilterInputStream | 抽象类,作为“装饰器”的接口。其中,“装饰器”为其他的InputStream类提供有用功能。 | 将在以后的学习中再详细叙述 |
OutputStream类型
类 | 功能 | 构造器参数/如何使用 |
ByteArrayOutputStream | 在内存中创建缓冲区。所有送往“流”的数据都要放置在此缓冲区 | 缓冲区初始化尺寸(可选) 用于指定数据的目的地:将其与FilterOutputStream对象相连以提供有用接口 |
FileOutputStream | 用于将信息写至文件 | 字符串,表示文件名、文件或FileDescriptor对象 指定数据的目的地:将其与FilterOutputStream对象相连以提供有用接口 |
PipedOutputStream | 任何写入其中的信息都会自动作为相关PipedInputStream的输出。实现“管道化”概念。 | PipedInputStream 指定用于多线程的数据的目的地:将其与FilterOutputStream对象相连以提供有用接口 |
FilterOutputStream | 抽象类,作为“装饰器”的接口。其中,“装饰器”为其他OutputStream提供有用功能。 | 将在以后的学习中再详细叙述 |