当前位置: 代码迷 >> J2SE >> 请教各位大牛,java怎么一次性读取一个目录上的多个文件?
  详细解决方案

请教各位大牛,java怎么一次性读取一个目录上的多个文件?

热度:9332   发布时间:2013-02-25 00:00:00.0
请问各位大牛,java如何一次性读取一个目录下的多个文件??
比如说:一个目录下有很多个文件(不知道文件数量),如何一次性读取十个文件,就是说10个10个的读取文件读完为止,然后将文件内容放到内存中!!

求各位大牛帮帮忙啦!小弟感激不尽

------解决方案--------------------------------------------------------
File f=new File("E:\\")
File[] fd=f.listFile();
这样fd数组就是获得目录f下的所有文件。
想要10个10个读取就用for循环吧
------解决方案--------------------------------------------------------
三楼这样就可以了。
另外循环的时候可以加上:判断是文件还是文件夹还是文件,如果是文件夹需要递归调用方法。

if(file.isFile()) //判断是否是文件


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

if(file.isFile()) //判断是否是文件


if(file.isDirectory()) //判断是否是文件夹

------解决方案--------------------------------------------------------
不知楼主的“文件”有没有包括子文件夹中的文件 不包括的话,以下代码应该对楼主有用:
Java code
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;    }}
------解决方案--------------------------------------------------------
要实现读完 多次调用getFiles方法即可
int idx=0;
File[] fs=null;

do fs=getFiles(path,idx++);
while(fs.length<10);


------解决方案--------------------------------------------------------
探讨

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

if(file.isFile()) //判断是否是文件


if(file.isDirectory()) //判断是否是文件夹
  相关解决方案