/*
SequenceInputStream类允许连接多个InputStream流。SequenceInputStream的构造不同于任何其他的InputStream。SequenceInputStream构造函数要么使用一对InputStream,要么用InputStream的一个Enumeration,显示如下:
SequenceInputStream(InputStream first, InputStream second)
SequenceInputStream(Enumeration streamEnum)
操作上来说,该类满足读取完第一个InputStream后转去读取第二个流的读取要求。使用Enumeration的情况下,它将继续读取所有InputStream流直到最后一个被读完。
text.txt与file2.txt一定要在当前目录下。
*/
//Demonstrate squenced input.
import java.io.*;
import java.util.*;
class InputStreamEnumerator implements Enumeration{
private Enumeration files;
public InputStreamEnumerator(Vector files){
this.files = files.elements();
}
public boolean hasMoreElements(){
return files.hasMoreElements();
}
public Object nextElement(){
try{
return new FileInputStream(files.nextElement().toString());
}catch(Exception e){
return null;
}
}
}
class SequenceInputStreamDemo{
public static void main(String[] args) throws Exception{
int c;
Vector files = new Vector();
files.addElement("text.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();
}
}
分享到:
相关推荐
Java序列化流(SequenceInputStream)是Java I/O流中的一个重要概念,它允许程序将多个输入流串联起来,形成一个逻辑上的连续输入流。这在处理多个数据源合并或连续读取时非常有用。在给定的示例代码中,我们可以...
总结起来,Java的SequenceInputStream提供了一种方便的方式来顺序读取多个输入流,而不需要手动管理多个流的读取顺序。这在处理多个数据源或合并文件时非常实用,简化了代码并提高了可读性。同时,通过结合使用...
- **`SequenceInputStream`**:合并多个输入流为一个单一的顺序输入流。 ##### 2. 字节流操作 - **读取操作**:通过 `read()` 方法从流中读取字节。 - **关闭流**:使用 `close()` 方法关闭流,释放系统资源。 ##...
- `SequenceInputStream`:可以将多个输入流合并成一个输入流。 - **输出流**:向目标端写入字节数据。主要类包括: - `ByteArrayOutputStream`:将数据写入内存数组。 - `FileOutputStream`:将数据写入文件。 ...
- **示例**:创建一个读取文件的字符输入流,并指定使用UTF-8编码: ```java Reader reader = new InputStreamReader(new FileInputStream("file.txt"), "UTF-8"); ``` #### 七、面向对象的继承性与装饰模式的...
- 输入流:ByteArrayInputStream、StringBufferInputStream、FileInputStream、PipedInputStream和SequenceInputStream。 - 输出流:ByteArrayOutputStream、FileOutputStream、PipedOutputStream和...
4. **SequenceInputStream**:这个类允许我们顺序地读取多个输入流,就像它们是一个单一的流。在缝线输出中,这个类可以用来合并多个小的输入流。 5. **RandomAccessFile**:如果需要在文件的任意位置进行读写,...
### Java初级知识要点详解 #### 一、Java概述与基础知识 **1....** 编程是指通过编写计算机程序来实现特定功能的过程。它涉及使用特定的编程语言(如Java),按照一定的规则和逻辑组织代码,以解决具体问题或实现特定...
在合并文件时,`mergeDemo()`方法使用了`SequenceInputStream`,它可以按顺序读取多个输入流。我们创建一个`ArrayList`来保存每个部分文件的`FileInputStream`,然后使用`Collections.enumeration()`将列表转换为...
输入流用于读取数据,输出流用于写入数据,Java中的流分为字节流和字符流两大类。 #### 二、字符流的由来 字符流是为了方便处理文本数据而设计的,底层基于字节流实现,通过字符集编码转换完成。 #### 三、编码表...