`

SequenceInputStream(顺序输入流)学习

阅读更多
http://imain.iteye.com/blog/263741
SequenceInputStream类允许连接多个InputStream流。SequenceInputStream的构造不同于任何其他的InputStream。SequenceInputStream构造函数要么使用一对InputStream,要么用InputStream的一个Enumeration,显示如下:
SequenceInputStream(InputStream first, InputStream second)
SequenceInputStream(Enumeration streamEnum)
操作上来说,该类满足读取完第一个InputStream后转去读取第二个流的读取要求。使用Enumeration的情况下,它将继续读取所有InputStream流直到最后一个被读完。
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Vector;

public class InputStreamEnumerator implements Enumeration<InputStream> {
	private Enumeration<String> files;

	public InputStreamEnumerator(Vector<String> files){
		this.files = files.elements();
	}

	public boolean hasMoreElements() {
		return files.hasMoreElements();
	}

	public InputStream nextElement() {
		try {
			return new FileInputStream(System.getProperty("user.dir")+"/"+files.nextElement().toString());
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		return null;
	}

}


import java.io.InputStream;
import java.io.SequenceInputStream;
import java.util.Vector;

public class SequenceInputStreamDemo {
	public static void main(String[] args) throws Exception {
		int c;
		Vector<String> files = new Vector<String>();
		files.addElement("file1.txt");
		files.addElement("file2.txt");
		InputStreamEnumerator e = new InputStreamEnumerator(files);
		InputStream input = new SequenceInputStream(e);
		while((c=input.read())!=-1){
			System.out.print((char)c); 
		}
		input.close();

	}
}

分享到:
评论

相关推荐

    多文件输入流类的使用

    `SequenceInputStream`是Java提供的一个特殊流,它可以顺序地读取多个输入流,就像它们是一个流一样。 **1. SequenceInputStream的使用** `SequenceInputStream`的构造方法接收一个`Enumeration`类型的参数,这个...

    JAVA IO流学习文档

    ### JAVA IO流学习知识点 #### 一、Java IO流概念及背景 - **引入原因**:在Java中,为了能够方便地与外部设备(如硬盘、网络等)进行数据交互,设计了一套标准的输入输出处理机制,即IO流。这使得程序能够更加...

    java序列号流基础入门.docx

    Java序列化流(SequenceInputStream)是Java I/O流中的一个重要概念,它允许程序将多个输入流串联起来,形成一个逻辑上的连续输入流。这在处理多个数据源合并或连续读取时非常有用。在给定的示例代码中,我们可以...

    java序列号流基础入门.pdf

    总结起来,Java的SequenceInputStream提供了一种方便的方式来顺序读取多个输入流,而不需要手动管理多个流的读取顺序。这在处理多个数据源或合并文件时非常实用,简化了代码并提高了可读性。同时,通过结合使用...

    javaIO(java中的流的介绍)

    - SequenceInputStream:组合多个输入流,按顺序读取它们的内容。 2. 输出流(Output Stream) - OutputStream:所有输出流的基类,用于写入原始字节。 - ByteArrayOutputStream:接收字节并存储到内存中,可将...

    java之精髓IO流

    - **SequenceInputStream**:将多个输入流合并为一个输入流,可以顺序读取多个数据源的内容。 - **OutputStream** - **ByteArrayOutputStream**:将数据写入内存中的字节数组。适用于需要将数据暂时存储在内存中...

    IO流体系继承结构图_动力节点Java学院整理

    此外,ObjectInputStream可以反序列化由ObjectOutputStream序列化的对象,SequenceInputStream则可以将多个InputStream连接起来,按顺序读取。 Reader和Writer体系与InputStream和OutputStream类似,只是它们处理的...

    JDK6API中文参考070114

    - SequenceInputStream:组合多个输入流,按顺序读取多个输入流的数据。 - OutputStream:字节输出流,作为所有字节输出流的超类,用于写入原始字节数据。例如: - ByteArrayOutputStream:字节数组输出流,用于...

    Java IO口解析(初级)

    - **`SequenceInputStream`**:合并多个输入流为一个单一的顺序输入流。 ##### 2. 字节流操作 - **读取操作**:通过 `read()` 方法从流中读取字节。 - **关闭流**:使用 `close()` 方法关闭流,释放系统资源。 ##...

    jAVA程序设计基础PPT教案学习.pptx

    流是有方向性的,不能往一个输入流中写数据,也不能从一个输出流中读数据。 字节流和字符流: InputStream和OutputStream是Java中两个基本的流类,它们可以读取或写入字节流或字符流。FilterInputStream和...

    对IO流总结

    以及`SequenceInputStream`,可以合并多个输入流。 - 输出流:包含`ByteArrayOutputStream`,将数据写入内存缓冲区;`FileOutputStream`,写入文件;`PipedOutputStream`,与PipedInputStream配合使用;以及`...

    java_IO流的处理.ppt

    - SequenceInputStream:合并多个输入流,按顺序读取。 - LineNumberInputStream:记录并提供行号的输入流。 - DataInputStream:增加了读取基本数据类型(如int、float)的方法。 除了InputStream,还有...

    Java,彻底明白Java语言中的IO系统

    - `SequenceInputStream`:可以将多个输入流合并成一个输入流。 - **输出流**:向目标端写入字节数据。主要类包括: - `ByteArrayOutputStream`:将数据写入内存数组。 - `FileOutputStream`:将数据写入文件。 ...

    JAVA_IO详解_包括讲解IO中各种流及其用法.pdf

    SequenceInputStream可以把多个输入流当作一个连续的输入流来读取,使程序可以顺序地读取多个文件或数据源。 ObjectInputStream和ObjectOutputStream是用于对象序列化的流。它们可以读写Java对象的状态,实现了对象...

    Input和Output.docx

    - **SequenceInputStream** 可以将多个输入流合并为一个,使得数据可以从多个源头顺序读取。 - **过滤流的其他类型**,如`BufferedInputStream`和`BufferedOutputStream`,可以提供缓冲功能以提高性能;`...

    java io完全解析

    - SequenceInputStream可以将多个输入流合并为一个连续的流,类似于将多个文件的内容顺序连接。 在Java IO中,还有一组用于对象序列化的流类,包括ObjectInputStream和ObjectOutputStream,它们支持将Java对象序列...

    JAVA-IO详解,方法和例子

    - 输入流:ByteArrayInputStream、StringBufferInputStream、FileInputStream、PipedInputStream和SequenceInputStream。 - 输出流:ByteArrayOutputStream、FileOutputStream、PipedOutputStream和...

    Java基础学习30.pdf

    它按顺序读取指定的输入流,非常适合实现文件合并功能。 4. **StringReader 和 StringWriter**: - 这两个类分别实现了Reader和Writer接口,它们可以直接与字符串交互,方便在内存中进行文本操作。 5. **打印流**...

    java语言的高级特性

    - `SequenceInputStream`:顺序连接多个输入流。 - `FilterInputStream`:提供基础的过滤器流类。 ##### 输出流 面向字节的输出流类主要继承自`OutputStream`类。关键方法包括: - `write(int byteData)`:写入...

Global site tag (gtag.js) - Google Analytics