网站首页 新闻首页 网页设计图形动画软件编程网站开发办公软件操作系统数据库网络技术认证考试范文资料黑客攻防 书籍教程 进入论坛

Java实现文件拷贝的4种方法.

http://www.diybl.com/ 2008-1-31  网络 点击:  [ 评论 ]
文章搜索:    【点击打包该文章】

使用 java 进行文件拷贝 相信很多人都会用,,不过效率上是否最好呢?
最近看了看NIO决定试一试 java  NIO 到底有什么性能的提升.

第一种方法:古老的方式



 public static long forJava(File f1,File f2) throws Exception{
  
long time=new Date().getTime();
  
int length=2097152;
  FileInputStream in
=new FileInputStream(f1);
  FileOutputStream out
=new FileOutputStream(f2);
  
byte[] buffer=new byte[length];
  
while(true){
   
int ins=in.read(buffer);
   
if(ins==-1){
    in.close();
    out.flush();
    out.close();
    
return new Date().getTime()-time;
   }
else
    out.write(buffer,
0,ins);
  }
 }

方法的2参数分别是原始文件,和拷贝的目的文件.这里不做过多介绍.

实现方法很简单,分别对2个文件构建输入输出流,并且使用一个字节数组作为我们内存的缓存器, 然后使用流从f1 中读出数据到缓存里,在将缓存数据写到f2里面去.这里的缓存是2MB的字节数组

第2种方法:使用NIO中的管道到管道传输



    public static long forTransfer(File f1,File f2) throws Exception{
        
long time=new Date().getTime();
        
int length=2097152;
        FileInputStream in
=new FileInputStream(f1);
        FileOutputStream out
=new FileOutputStream(f2);
        FileChannel inC
=in.getChannel();
        FileChannel outC
=out.getChannel();
        
int i=0;
        
while(true){
            
if(inC.position()==inC.size()){
                inC.close();
                outC.close();
                
return 
文章整理:DIY部落 http://www.diybl.com (本站)   【点击打包该文章】
如果图片或页面不能正常显示请点击这里 站内搜索:   

文章评论

请您留言

 

最新新闻