黑马程序员技术交流社区
标题:
提示第19行需要标识符
[打印本页]
作者:
黑马李刚
时间:
2011-9-6 23:27
标题:
提示第19行需要标识符
[code=java] import java.util.*;
import java.io.*;
class L
{
public static void main(String args[]) throws IOException
{
//向ArrayList加入三个流对象
ArrayList<FileInputStream> al=new ArrayList<FileInputStream>();
for(int x=0;x<20;x++)
{
al.add(new FileInputStream(""+x+".part"));
}
//做一个枚举,并传入SequenceInputStream的构造函数中
Iterator<FileInputStream> it=al.iterator();
Enumeration<FileInputStream> en=new Enumeration<FileInputStream>()
{
pubic boolean hashMoreElements()
{
return it.hasNext();
}
public FileInputStream nexElement()
{
return it.next();
}
};
SequenceInputStream sis=new SequenceInputStream(en);
//以上是是第一部分,目的是将三个流合并成一个流
FileOutputStream fos=new FileOutputStream("er.avi");
byte[] buf=new byte[1024*1024];
int ch=0;
while((ch=sis.read(buf))!=-1)
{
fos.write(buf,0,ch);
}
fos.close();
sis.close();
}
}[/code]代码大意:将三个文件(1.part; 2.part; 3.part)合并成一个文件(er.avi)。
[
本帖最后由 黑马李刚 于 2011-09-06 23:29 编辑
]
作者:
匿名
时间:
2011-9-6 23:41
标题:
回复 楼主 的帖子
pubic boolean hashMoreElements(){
return it.hasNext();
}
public FileInputStream nexElement(){
return it.next();
}
这两个方法都写错了。应该是下面这两个,要注意啊。写错了,不是实现接口,会报错。
@Override
public boolean hasMoreElements() {
return false;
}
@Override
public FileInputStream nextElement() {
return null;
}
作者:
匿名
时间:
2011-9-7 00:43
hasMoreElements
boolean hasMoreElements()
测试此枚举是否包含更多的元素。
当且仅当此枚举对象至少还包含一个可提供的元素时,才返回 true;否则返回 false。
nextElement
E nextElement()如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。
如果没有更多的元素存在,抛出NoSuchElementException。
作者:
匿名
时间:
2011-9-8 10:21
我只是把它放到eclipse里面,三个单词拼写错
public boolean hasMoreElements()
{
return it.hasNext();
}
public FileInputStream nextElement()
另外it要想在内部内使用,需要被定义成final
final Iterator<FileInputStream> it=al.iterator();
没有细看,有没有其他问题不清楚
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2