黑马程序员23-5:FileInputStream文件输入流,Enumeration将多个文件输出到同一个文件中,顺序流SequenceInputStream
package cn.itcast.io.p4.sequence.demo;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Iterator;
public class SequenceInputStreamDemo {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
/*
* 需求:将1.txt 2.txt 3.txt文件中的数据合并到一个文件中。
*/
// Vector<FileInputStream> v = new Vector<FileInputStream>();
// v.add(new FileInputStream("1.txt"));
// v.add(new FileInputStream("2.txt"));
// v.add(new FileInputStream("3.txt"));
// Enumeration<FileInputStream> en = v.elements();
ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();
for(int x=1; x<=3; x++){
al.add(new FileInputStream(x+".txt"));
}
//枚举文件输入流,Collections工具
Enumeration<FileInputStream> en = Collections.enumeration(al);
/*
final Iterator<FileInputStream> it = al.iterator();
Enumeration<FileInputStream> en = new Enumeration<FileInputStream>(){
@Override
public boolean hasMoreElements() {
return it.hasNext();
}
@Override
public FileInputStream nextElement() {
return it.next();
}
};*/
//顺序流
SequenceInputStream sis = new SequenceInputStream(en);
FileOutputStream fos = new FileOutputStream("1234.txt");
byte[] buf = new byte[1024];
int len = 0;
while((len=sis.read(buf))!=-1){
fos.write(buf,0,len);
}
fos.close();
sis.close();
}
}
分享到:
相关推荐
虽然`SequenceInputStream`主要用于读取多个文件,但在实际应用中,可能还需要将多个文件的内容合并写入到一个新文件。这可以通过先读取每个文件,然后写入到目标文件来实现。例如: ```java import java.io.*; ...
Java序列化流(SequenceInputStream)是Java I/O流中的一个重要概念,它允许程序将多个输入流串联起来,形成一个逻辑上的连续输入流。这在处理多个数据源合并或连续读取时非常有用。在给定的示例代码中,我们可以...
- `SequenceInputStream(Enumeration<InputStream> e)`:接收一个包含多个输入流的枚举集合。 - `SequenceInputStream(InputStream s1, InputStream s2)`:接收两个输入流。 #### 处理流实例 1. **...
Java序列号流(SequenceInputStream)是Java I/O流中的一个类,它允许我们将多个输入流连接在一起,就像一个单一的输入流一样进行操作。这在处理多个文件合并或者需要顺序读取不同源的数据时非常有用。 在示例代码...
而SequenceInputStream则可以将多个输入流合并为一个,方便连续读取。 8. 文件目录操作: File类提供了对文件目录的操作,如列举目录下的文件和子目录,获取文件属性等。 9. 高级IO(NIO): Java NIO(New IO)...
java 中实现切割文件和合并文件的功能主要用于将大文件切割成小文件碎片,以便于文件传输和存储,或者将小文件碎片合并成一个大文件。下面详细介绍 java 实现切割文件和合并文件的功能相关知识点。 一、切割文件 ...
我们不断读取文件内容,每次读取到的数据都会被写入到一个新创建的文件中,这个新文件的名称基于当前循环次数`num`加上`.part`后缀,保存在指定的临时文件目录`tempFile`中。这个过程持续到源文件的末尾,最后关闭...
这个例子中,我们使用SequenceInputStream将多个字节流合并成一个字节流,然后将其写入到一个新的文件中。 Java中IO流是一种基本的输入/输出机制,用于读取和写入数据。IO流可以分为两种:字节流和字符流。字节流...
我们创建一个`ArrayList`来保存每个部分文件的`FileInputStream`,然后使用`Collections.enumeration()`将列表转换为枚举对象,最后通过`SequenceInputStream`将所有部分文件的内容合并到新的输出文件中。...