有人可以帮我阅读csv文件列表。喜欢
List<List<File>> filesList;
想要读取每个列表中的所有文件内容进行处理,但无法使用可以使用的循环结构。感谢。
更新:我想同时从每个内部文件列表中加载文件。就像一次从每个内部列表中读取第一个文件一样,比较内容,然后移动到特定列表的第二个文件,依此类推。每个内部列表可以是可变大小。
答案 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
}