日期:2014-05-20  浏览次数:20605 次

处理文件问题
java处理50G的文件,是用多线程,还是有别的什么办法更好的提高性能

------解决方案--------------------
多起几个线程(一个线程一个大目录)调用下面的方法。
Java code


    private static void listFile(File path) {
        // 遍历出的各个文件全路径
        File[] files;
        files = path.listFiles(); // 得到一个由文件和目录组成的数组;
        if (files == null) { // 如果文件夹不存在或者没有其他文件目录的话,直接返回
            return ;
        }
        Arrays.sort(files); // 把数组按升序排列;
        for (int i = 0; i < files.length; i++) {
            // 进行相关操作
            // 递归
            if (files[i].isDirectory()) // 测试是否为目录;
            {
                listFile(files[i]);
            } else {
                analyzeFile(files[i]);
            }

        }
    }
        private void analyzeFile( File f ) {
             ....
        }