A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 金肖 中级黑马   /  2012-5-6 14:38  /  1713 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何将存储在list集合中的元素,使用枚举的方式取出来?比如下列代码
public static void main(String[] args) throws IOException {
                 File file = new File("merge.txt");
                // 创建一个集合用于存储流对象
                ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();

                al.add(new FileInputStream("a.txt"));
                al.add(new FileInputStream("demo.txt"));
                al.add(new FileInputStream("count.ini"));

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

3 个回复

倒序浏览
import java.io.*;
import java.util.*;
public class Text {
public static void main(String[] args) throws Exception {
    ArrayList<FileInputStream> list = new ArrayList<FileInputStream>();
    list.add(new FileInputStream("c:\\1.txt"));
    list.add(new FileInputStream("c:\\2.txt"));
    list.add(new FileInputStream("c:\\3.txt"));
    Enumeration<FileInputStream> en=enumerationShow(list);
while (en.hasMoreElements()) {
String readResult=readArrarListFile(en.nextElement());
System.out.println(readResult);
}
}
private static Enumeration<FileInputStream> enumerationShow(ArrayList<FileInputStream> list) throws Exception {
   final Iterator<FileInputStream> iter = list.iterator();      //通过ArrayList的迭代器来实现访问集合 中的元素
    Enumeration<FileInputStream> en = new Enumeration<FileInputStream>() {//此处使用了匿名内部类,并且实现了借口中的抽象方法
     public boolean hasMoreElements() {
      return iter.hasNext();
     }
     public FileInputStream nextElement(){
       return iter.next();
     }
     
    };
return en;
  
}
//目的是读出每个file里的内容
  public static String readArrarListFile(FileInputStream file) throws IOException{
    String str=null,line=null;
    BufferedReader br=new BufferedReader(new InputStreamReader(file));
    while ((line=br.readLine())!=null) {
   str+=line+"\n";
    }
    return str;
   }
}

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
把复杂的问题变简单:
直接上代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;

public class Testext {

    public static void main(String[] args) {
        List<String> countries = new ArrayList<String>();
        countries.add("China");
        countries.add("America");
        countries.add("Japan");

        Enumeration<String> e = Collections.enumeration(countries);
        while (e.hasMoreElements())
            System.out.println(e.nextElement());
    }
}

输出:
China
America
Japan

String换成FileInputStream也是如此!

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
public static void main(String[] args) throws IOException {
                 File file = new File("merge.txt");
                // 创建一个集合用于存储流对象
                ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();

                al.add(new FileInputStream("a.txt"));
                al.add(new FileInputStream("demo.txt"));
                al.add(new FileInputStream("count.ini"));
int len=al.lenth();
for(int i=0;i<len;i++){
al.get(i);
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马