A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

刚才写了一个程序把张老师的Java基础加强中每个文件夹中的avi文件拷贝到一个文件夹中,并分别用了带缓冲区的拷贝和直接的流拷贝,发现执行效率相差太大了,有兴趣的可以试一下,代码如下

带缓冲区的代码
package execisetest;
import java.io.*;
public class FileDemo3{
        public static void main(String [] args) throws Exception{               
                long time1 = System.currentTimeMillis();
                System.out.println(time1);
                File f=new File("E:\\java基础加强");
                showFile(f);
                long time2=System.currentTimeMillis();
                System.out.println(time2);
                System.out.println(time2-time1);               
        }       
        public static void showFile(File dir) throws Exception{
                File [] files=dir.listFiles();
                for(File file:files){
                        if(file.isDirectory()){
                                showFile(file);
                        }
                        else if(file.getName().endsWith(".avi")){
                                InputStream is=new FileInputStream(file);
                                BufferedInputStream buffIn=new BufferedInputStream(is);
                                OutputStream os=new FileOutputStream("e:\\abc\\"+file.getName());
                                OutputStream BuffOut=new FileOutputStream(file);
                                byte [] buf=new byte[1024];
                                int len=0;
                                while((len=buffIn.read(buf))!=-1){
                                        BuffOut.write(buf, 0, len);
                                }
                        }                               
                }       
        }
}
不带缓冲区的代码只需要去掉缓冲区的装饰即可

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马