黑马程序员技术交流社区
标题:
合并流的问题,老毕的视频不行啊
[打印本页]
作者:
wangcongwu
时间:
2014-12-15 04:20
标题:
合并流的问题,老毕的视频不行啊
RT,sequenceInputStream 的实验,合并流试图用Enumeration 照着老毕的视频敲 的代码不行啊,我网上找到一个行的,人家是try catch 和finally三步走的就行,老毕的throws IOException的不成啊。老毕坑我
package 合并流SequenceInputStream;
import java.io.*;
import java.util.*;
public class SequenceInputStream {
public static void main(String[] args) throws IOException {
// 只有vector 有emoration
doSequence();
}
public static void doSequence()
{
SequenceInputStream sis = null;
Vector<InputStream> v = new Vector<InputStream>();
v.addElement(new FileInputStream("1.txt"));
v.addElement(new FileInputStream("2.txt"));
v.addElement(new FileInputStream("3.txt"));
Enumeration<InputStream> en = v.elements();
sis = new SequenceInputStream(en);
FileOutputStream fos = new FileOutputStream("4.txt");
byte[] buf = new byte[1024];
int len = 0;
while((len = sis.read(buf))!= -1)
{
fos.write(buf,0,len);
}
fos.close();
sis.close();
}
}
复制代码
作者:
wangcongwu
时间:
2014-12-15 04:26
神了人家另一个人用的是老毕的方法,我把他的放在我的文件里就不行了
package 合并流SequenceInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Vector;
public class 网上的用throws的方法写的 {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
/**
* 需求:将多个文件数据进行合并到一个文件中。
*
* SequenceInputStream构造方法:
* SequenceInputStream sis = new SequenceInputStream(Enumeration<? extends InputStream> e);//枚举变量参数
*/
show1();
// show2();
//show3();
}
public static void show3() throws IOException {
ArrayList<InputStream> al = new ArrayList<InputStream>();
for(int i = 1 ; i<4 ; i++){
al.add(new FileInputStream(i+".txt"));
}
Enumeration<InputStream> en = Collections.enumeration(al);
SequenceInputStream sis = new SequenceInputStream(en);//将三个数据源合并到一个数据源
FileOutputStream fos = new FileOutputStream(new File("4.txt"));
int len = 0;
byte []bu = new byte[1024];
while((len = sis.read(bu))!=-1){
fos.write(bu, 0, len);
}
sis.close();
fos.close();
}
public static void show2() throws IOException {
ArrayList<InputStream> al = new ArrayList<InputStream>();
for(int i = 1 ; i<4 ; i++){
al.add(new FileInputStream(i+".txt"));
}
final Iterator<InputStream> it = al.iterator(); //内部类访问外部类中的成员变量,需要用final 修饰。
Enumeration<InputStream> en = new Enumeration<InputStream>() {
@Override
public boolean hasMoreElements() {
return it.hasNext();
}
@Override
public InputStream nextElement() {
return it.next();
}
};
SequenceInputStream sis = new SequenceInputStream(en);//将三个数据源合并到一个数据源
FileOutputStream fos = new FileOutputStream(new File("4.txt"));
int len = 0;
byte []bu = new byte[1024];
while((len = sis.read(bu))!=-1){
fos.write(bu, 0, len);
}
sis.close();
fos.close();
}
public static void show1() throws IOException {
Vector<InputStream> v = new Vector<InputStream>();
v.add(new FileInputStream("1.txt"));
v.add(new FileInputStream("2.txt"));
v.add(new FileInputStream("3.txt"));
Enumeration<InputStream> en = v.elements();//获得枚举变量
SequenceInputStream sis = new SequenceInputStream(en);//将三个数据源合并到一个数据源
FileOutputStream fos = new FileOutputStream(new File("4.txt"));
int len = 0;
byte []bu = new byte[1024];
while((len = sis.read(bu))!=-1){
fos.write(bu, 0, len);
}
sis.close();
fos.close();
}
}
复制代码
作者:
wangcongwu
时间:
2014-12-15 04:31
上边的show1 就是老毕的方法,我放进去就是不行给我显示的是
SequenceInputStream sis = new SequenceInputStream(en);//将三个数据源合并到一个数据源
说的是
The constructor SequenceInputStream(Enumeration<InputStream>) is undefined
啥几吧意思啊咋没defined啊
作者:
wangcongwu
时间:
2014-12-15 04:35
我知道啥意思了 我2了
作者:
双鱼座程序员
时间:
2014-12-15 10:23
评论一下,先收藏了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2