package com.heilong.io;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector;
public class sequenceinputstream {
public static void main(String[] args) throws IOException {
merge();
}
public static void merge() throws IOException{
//1.找到目标文件
File dir = new File("./src/data");
File[] files = dir.listFiles();
Vector<FileInputStream> vector = new Vector<FileInputStream>();
for(File file : files){
if(file.getName().endsWith(".txt")){
vector.add(new FileInputStream(file));
}
}
//获取迭代器
Enumeration<FileInputStream> e = vector.elements();
//创建序列流
SequenceInputStream sequenceInputStream = new SequenceInputStream(e);
//建立文件的输出通道
FileOutputStream fileOutputStream = new FileOutputStream(new File("./src/data/合并.txt"));
//建立缓冲数组读取文件
byte[] buf = new byte[1024];
int length = 0;
while((length=sequenceInputStream.read(buf)) != -1){
fileOutputStream.write(buf, 0, length);
}
fileOutputStream.close();
sequenceInputStream.close();
}
public static void cut() throws IOException{
//1.找到目标文件
File file = new File("./src/data/a.txt");
File dir = new File("./src/data");
//2.建立数据的输入通道
FileInputStream fileInputStream = new FileInputStream(file);
//3.读取数据并进行分割
byte[] buf = new byte[1024];
int length = 0;
int i = 1;
while((length=fileInputStream.read(buf)) != -1){
FileOutputStream fileOutputStream = new FileOutputStream(new File(dir, "part" + i + ".txt"));
fileOutputStream.write(buf, 0, length);
fileOutputStream.close();
i++;
}
fileInputStream.close();
}
}
Java序列流SequenceInputStream的使用方式
最新推荐文章于 2023-05-23 12:07:17 发布