package com.zyf.day22;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Vector;
//合并文件
public class demo1 {
public static void main(String[] args) throws IOException {
merge3();
}
public static void merge1() throws IOException{
//找到目标文件
File inFile1 = new File("c:\\a.txt");
File inFile2 = new File("c:\\b.txt");
File outFile = new File("c:\\c.txt");
//建立数据的输入输出通道
FileInputStream fileInputStream1 = new FileInputStream(inFile1);
FileInputStream fileInputStream2 = new FileInputStream(inFile2);
FileOutputStream fileOutputStream = new FileOutputStream(outFile);
ArrayList<FileInputStream> list = new ArrayList<FileInputStream>();
list.add(fileInputStream1);
list.add(fileInputStream2);
byte[] buf = new byte[1024];
int length = 0;
for(int i = 0;i < list.size();i++){
FileInputStream fileInputStream = list.get(i);
while((length = fileInputStream.read(buf))!=-1){
fileOutputStream.write(buf,0,length);
}
//关闭资源
fileInputStream.close();
}
fileOutputStream.close();
}
public static void merge2() throws IOException{
//找到目标文件
File inFile1 = new File("c:\\a.txt");
File inFile2 = new File("c:\\b.txt");
File outFile = new File("c:\\c.txt");
//建立数据的输入输出通道
FileInputStream fileInputStream1 = new FileInputStream(inFile1);
FileInputStream fileInputStream2 = new FileInputStream(inFile2);
FileOutputStream fileOutputStream = new FileOutputStream(outFile);
//建立序列流对象
SequenceInputStream inputStream = new SequenceInputStream(fileInputStream1,fileInputStream2);
byte[] buf = new byte[1024];
int length = 0;
while((length = inputStream.read(buf))!=-1){
fileOutputStream.write(buf,0,length);
}
//关闭资源
inputStream.close();
fileOutputStream.close();
}
public static void merge3() throws IOException{
//找到目标文件
File inFile1 = new File("c:\\a.txt");
File inFile2 = new File("c:\\b.txt");
File inFile3 = new File("c:\\d.txt");
File outFile = new File("c:\\c.txt");
//建立数据的输入输出通道
FileInputStream fileInputStream1 = new FileInputStream(inFile1);
FileInputStream fileInputStream2 = new FileInputStream(inFile2);
FileInputStream fileInputStream3 = new FileInputStream(inFile3);
FileOutputStream fileOutputStream = new FileOutputStream(outFile);
//创建序列流对象
Vector<FileInputStream> vector = new Vector<FileInputStream>();
vector.add(fileInputStream1);
vector.add(fileInputStream2);
vector.add(fileInputStream3);
Enumeration<FileInputStream> e = vector.elements();
SequenceInputStream sequenceInputStream = new SequenceInputStream(e);
//读取文件数据
byte[] buf = new byte[1024];
int length = 0;
while((length = sequenceInputStream.read(buf))!=-1){
fileOutputStream.write(buf,0,length);
}
//关闭资源
sequenceInputStream.close();
fileOutputStream.close();
}
}
IO 文件合并
最新推荐文章于 2022-09-24 23:18:40 发布