黑马程序员 java IO SequenceInputStream 和并文件

来源:互联网 发布:c语言多进程编程 编辑:程序博客网 时间:2024/06/01 10:39
package itcast.video0101;


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;


public class I_12_IO_SequenceInputStream {


/**
* @param args
*/
public static void main(String[] args) {
addFile2();
}


// 合并文件
public static void addFile2() {
List<FileInputStream> list = new ArrayList<FileInputStream>();
FileOutputStream fos = null;
try {
list.add(new FileInputStream("f:\\itcastVideo\\1.txt"));
list.add(new FileInputStream("f:\\itcastVideo\\2.txt"));
list.add(new FileInputStream("f:\\itcastVideo\\3.txt"));


fos = new FileOutputStream("f:\\itcastVideo\\addList.txt");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
final Iterator<FileInputStream> it = list.iterator();


// squenceInputStream的一个参数类型
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);


byte by[] = new byte[1024];
int len = -1;


try {
while ((len = sis.read(by)) != -1) {
fos.write(by, 0, len);
fos.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
sis.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}


}


}


// 合并文件
public static void addFile() {
Vector<FileInputStream> v = new Vector<FileInputStream>();
FileOutputStream fos = null;
// squenceInputStream的一个参数类型
Enumeration<FileInputStream> en = null;
try {
v.add(new FileInputStream("f:\\itcastVideo\\1.txt"));
v.add(new FileInputStream("f:\\itcastVideo\\2.txt"));
v.add(new FileInputStream("f:\\itcastVideo\\3.txt"));


en = v.elements();
fos = new FileOutputStream("f:\\itcastVideo\\add.txt");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SequenceInputStream sis = new SequenceInputStream(en);


byte by[] = new byte[1024];
int len = -1;


try {
while ((len = sis.read(by)) != -1) {
fos.write(by, 0, len);
fos.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
sis.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}


}


}


}
0 0
原创粉丝点击