黑马程序员技术交流社区
标题:
切割后合并的文件,为什么大小是0kb?
[打印本页]
作者:
anywayDo
时间:
2015-5-9 15:59
标题:
切割后合并的文件,为什么大小是0kb?
<blockquote><blockquote><div class="blockcode"><blockquote>/*
需求:将切割后的文件合并
*/
import java.io.*;
import java.util.*;
class SplitDemo
{
public static void main(String[] args) throws IOException
{
ArrayList<FileInputStream> al=new ArrayList<FileInputStream>();
al.add(new FileInputStream("c:\\2.part"));
al.add(new FileInputStream("c:\\3.part"));
al.add(new FileInputStream("c:\\1.part"));
al.add(new FileInputStream("c:\\0.part"));//将切割后的文件和读取流相关联,然后添加到al集合中。
final Iterator<FileInputStream> it=al.iterator();
Enumeration<FileInputStream> en=new Enumeration<FileInputStream>()//使用匿名内部类覆盖Enumeration中的方法。
{
public boolean hasMoreElements()
{
return it.hasNext();
}
public FileInputStream nextElement()
{
return it.next();
}
};
SequenceInputStream sis=new SequenceInputStream(en);//将enumeration的对象作为实际参数传给序列流,将其中的元素合并成一个读取流
FileOutputStream fos=new FileOutputStream("c:\\5.png");
byte[] buf=new byte[1024];
int len=0;
while((sis.read(buf))!=-1)
{
fos.write(buf,0,len);
}
sis.close();
fos.close();
}
}
复制代码
使用切割的方法,把一个图片文件切成了四份,再使用序列流合并的时候,合并成功了,但是合并的文件是0kb,为什么会这样呢?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2