- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.FilenameFilter;
- import java.io.InputStream;
- import java.io.SequenceInputStream;
- import java.util.Enumeration;
- import java.util.Vector;
- public class StreamTest {
- public static void main(String[] args) throws Exception {
- Vector<InputStream> vector = new Vector<>();
- File dir = new File("E:\\nihao");
- File[] files = dir.listFiles(new FilenameFilter() {
- public boolean accept(File dir, String name) {
- return name.endsWith(".txt");
- }
- });
- for (File file : files) {
- vector.add(new FileInputStream(file));
- }
-
- Enumeration<InputStream> enumeration = vector.elements();
- SequenceInputStream stream = new SequenceInputStream(enumeration);
- FileOutputStream fos = null;
- int i = 1;
- int len = -1;
- int total = 0;
- byte[] buf = new byte[20];
- while ((len = stream.read(buf, total, buf.length - total)) != -1) {
- total += len;
- if (total == buf.length) {
- fos = new FileOutputStream("E:\\nihao\\" + i++ + ".txt");
- fos.write(buf, 0, total);
- total = 0;
- }
- }
- // 读完的最后一次可能不足buf.length个字节。需要单独处理
- fos = new FileOutputStream("E:\\nihao\\" + i + ".txt");
- fos.write(buf, 0, total);
- }
- }
复制代码 |