黑马程序员技术交流社区
标题:
合并的两个方式 为什么第一个合并出来的有问题
[打印本页]
作者:
hubby
时间:
2013-11-20 19:32
标题:
合并的两个方式 为什么第一个合并出来的有问题
第一个合并是用vector集合中的Enumeration。
第二个是Arraylist实现内部类来提供Enumeration。
public static void hebing()throws IOException
{
Vector<FileInputStream>v=new Vector<FileInputStream>();
for (int x=0;x<=3 ;x++ )
{
v.add(new FileInputStream("e:\\tupian\\"+x+".part"));
}
//v.add(new FileInputStream("e:\\tupian\\0.part"));
//v.add(new FileInputStream("e:\\tupian\\1.part"));
//v.add(new FileInputStream("e:\\tupian\\2.part"));
//v.add(new FileInputStream("e:\\tupian\\3.part"));
Enumeration<FileInputStream> en=v.elements();
SequenceInputStream sis=new SequenceInputStream(en);
FileOutputStream fos=new FileOutputStream("e:\\tupian\\美女.jpg");
int num=0;
while ((sis.read())!=-1)
{
fos.write(num);
}
fos.close();
sis.close();
}
复制代码
第二种
public static void hebing2()throws IOException
{
ArrayList<FileInputStream> al=new ArrayList<FileInputStream>();
for (int x=0;x<=3 ;x++ )
{
al.add(new FileInputStream("e:\\tupian\\"+x+".part"));
}
final Iterator<FileInputStream> it=al.iterator();
Enumeration<FileInputStream> en=new Enumeration<FileInputStream>()
{
public boolean hasMoreElements()
{
return it.hasNext();
}
public FileInputStream nextElement()
{
return it.next();
}
};
SequenceInputStream sis=new SequenceInputStream(en);
FileOutputStream fos=new FileOutputStream("e:\\tupian\\美女复写.jpg");
int num=0;
while ((num=sis.read())!=-1)
{
fos.write(num);
}
sis.close();
fos.close();
}
复制代码
这两个合并出来的图片大小是一样大的,但是第一个合并出来的图片打开什么都没有,什么情况?
作者:
@ne_pie尒ce
时间:
2013-11-20 20:00
int num=0;
16.
while ((sis.read())!=-1)
17. {
18. fos.write(num);
19. }
你的第一 while循环中没有给num赋值,fos.write(num);一直写的的是0
作者:
hubby
时间:
2013-11-20 21:08
{:soso_e127:}我晕,,这个小错误。。。谢了。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2