java读取文件列表的列表

时间:2013-07-30 10:34:56

标签: java file-io

有人可以帮我阅读csv文件列表。喜欢

List<List<File>> filesList;

想要读取每个列表中的所有文件内容进行处理,但无法使用可以使用的循环结构。感谢。

更新:我想同时从每个内部文件列表中加载文件。就像一次从每个内部列表中读取第一个文件一样,比较内容,然后移动到特定列表的第二个文件,依此类推。每个内部列表可以是可变大小。

4 个答案:

答案 0 :(得分:4)

这是一个适当的循环:

for (List<File> innerList : filesList) 
    for (File file : innerList) 
        // do something for a file

答案 1 :(得分:1)

或者您可以使用Iterator,就像这样

    List<ArrayList<File>> filesList = new ArrayList<ArrayList<File>>();
    //add objects to filesList here

    Iterator<ArrayList<File>> filesListIterator = filesList.iterator();

    while(filesListIterator.hasNext())
    {
        ArrayList<File> files = filesListIterator.next();

        Iterator<File> filesIterator = files.iterator();

        while(filesIterator.hasNext())
        {
            File file = filesIterator.next();
            //do your own logic here;
        }
    }  

更新
这可能有助于您进行比较

 while(filesListIterator.hasNext())
    {
        ArrayList<File> files = filesListIterator.next();

        for(int i=0;i<files.size()-1;i++)
        {
            File firstFile = files.get(i);//get a file

            File secondFile = files.get(i+1);//get the next file

            compareFiles(firstFile,secondFile);//this is your defined   
                                             //method for compare
        }
    } 

答案 2 :(得分:0)

    List<List<File>> filesList;
    for (List<File> list : filesList) {
        for (File file : list) {
            // your code here ...
        }
    }

答案 3 :(得分:0)

我个人建议你使用Google Guava,这有一个concat方法

    final List<List<File>> files = Lists.newArrayList();
    for (final File file : Iterables.concat(files)) {
        //doStuff with file
    }