首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java海量处理图片解决办法

2012-04-23 
java海量处理图片现在某个文件夹下有上亿个小图片(1-10k),有什么工具或者用java编写程序 来实现把这个文件

java海量处理图片
现在某个文件夹下有上亿个小图片(1-10k),有什么工具或者用java编写程序 来实现把这个文件夹复制到另一个文件夹中。(速度最好大于500kb/s )

[解决办法]
我测试的F1文件夹3.9M,用时0.18秒,速度LZ自己算下,完全达到你的要求,而且的话支持读取子文件夹,文件类型也不只是图片

Java code
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;public class CopyFolder {    public static void main(String[] args)    {   long begin=System.currentTimeMillis();        copyFolder("F:/JAVA/F1","F:/JAVA/F2");        long end=System.currentTimeMillis();        System.out.println((end-begin)*0.001+"秒");    }    public static void copyFolder(String oldPath, String newPath) {            try {                (new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹                File a=new File(oldPath);                String[] file=a.list();                File temp=null;                for (int i = 0; i < file.length; i++) {                    if(oldPath.endsWith(File.separator)){                        temp=new File(oldPath+file[i]);                    }                    else{                        temp=new File(oldPath+File.separator+file[i]);                    }                    if(temp.isFile()){                        FileInputStream input = new FileInputStream(temp);                        FileOutputStream output = new FileOutputStream(newPath + "/" +                                (temp.getName()).toString());                        byte[] b = new byte[1024 * 5];                        int len;                        while ( (len = input.read(b)) != -1) {                            output.write(b, 0, len);                        }                        output.flush();                        output.close();                        input.close();                    }                    if(temp.isDirectory()){//如果是子文件夹                        copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);                    }                }            }            catch (Exception e) {                System.out.println("复制整个文件夹内容操作出错");                e.printStackTrace();            }        }} 

热点排行
Bad Request.