比如说:一个目录下有很多个文件(不知道文件数量),如何一次性读取十个文件,就是说10个10个的读取文件读完为止,然后将文件内容放到内存中!!求各位大牛帮帮忙啦!小弟感激不尽

解决方案 »

  1.   

    java遍历目录结构 
    http://www.cnblogs.com/sunzhenxing19860608/archive/2011/02/25/1965421.html遍历到的文件读一下,
    读文件
    http://lapulande.iteye.com/blog/706051
      

  2.   

    File f=new File("E:\\")
    File[] fd=f.listFile();
    这样fd数组就是获得目录f下的所有文件。
    想要10个10个读取就用for循环吧
      

  3.   

    三楼这样就可以了。
    另外循环的时候可以加上:判断是文件还是文件夹还是文件,如果是文件夹需要递归调用方法。if(file.isFile()) //判断是否是文件
    if(file.isDirectory()) //判断是否是文件夹
      

  4.   

    不知楼主的“文件”有没有包括子文件夹中的文件 不包括的话,以下代码应该对楼主有用:package com.yangxiutian; import java.io.File;
    import java.io.FileFilter;
    import java.util.Arrays;public class Test {
    public static void main(String[] args) { 
    File[] fs=getFiles("C:\\Documents and Settings\\Administrator\\桌面",3);
    for(File temp:fs){ 
    System.out.println(temp.getName()); 
    }
    }
    /**
     * 
     * @param dir        指定的路径
     * @param currentPage 类似于分页
     * @return
     */
    static File[] getFiles(String dir,int currentPage){
    File f=new File(dir);
    int pageSize=10;
    File[] allFiles=f.listFiles(new FileFilter() {//过滤掉目录 
    @Override
    public boolean accept(File f) { 
    return f.isFile()?true:false;
    }
    });System.out.println(allFiles.length);
    int init=(currentPage-1)*pageSize;
    if(init>allFiles.length){//页数太大
    return new File[0];
    }
    File[] output=Arrays.copyOfRange(allFiles, init, init+pageSize);
    if(init+10>allFiles.length){//不足一页的情况 去掉null
    int size=allFiles.length-init;
    output=Arrays.copyOf(output, size);
    }
    return output;
    }
    }
      

  5.   

    要实现读完  多次调用getFiles方法即可
    int idx=0;
    File[] fs=null;do fs=getFiles(path,idx++);
    while(fs.length<10);
      

  6.   

    如果需要深层次遍历,3楼的 结合我的就可以实现 关键是获得allFiles数组,再对该数组分段。