欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA IO 文件拷贝性能测试-2009-03-13 javanioio 

程序员文章站 2024-03-16 19:07:22
...
今天做了java IO 与 NIO 拷贝文件的性能测试,发现NIO并不比IO快多少,甚至有时候比老IO慢。

JAVA IO 文件拷贝性能测试-2009-03-13
            
    
    
        javanioio 

以下是测试记录(用时毫秒记):

文件1大小:103858393
IO第1次用时 6718
文件1大小:103858393
IO第2次用时 1875
文件1大小:103858393
IO第3次用时 2766
文件1大小:103858393
IO第4次用时 2484
文件1大小:103858393
IO第5次用时 3672
文件1大小:103858393
IO第6次用时 2266
文件1大小:103858393
IO第7次用时 1828
文件1大小:103858393
IO第8次用时 2266
文件1大小:103858393
IO第9次用时 2453
文件1大小:103858393
IO第10次用时 2500
文件1大小:103858393
IO第11次用时 1937
文件1大小:103858393
IO第12次用时 2407
文件1大小:103858393
IO第13次用时 1875
文件1大小:103858393
IO第14次用时 3672
文件1大小:103858393
IO第15次用时 2109
文件1大小:103858393
IO第16次用时 1844
文件1大小:103858393
IO第17次用时 3500
文件1大小:103858393
IO第18次用时 2141
文件1大小:103858393
IO第19次用时 3859
文件1大小:103858393
IO第20次用时 1969

文件2大小:103920648
NIO第1次用时 7390
文件2大小:103920648
NIO第2次用时 1781
文件2大小:103920648
NIO第3次用时 1969
文件2大小:103920648
NIO第4次用时 2297
文件2大小:103920648
NIO第5次用时 1656
文件2大小:103920648
NIO第6次用时 1578
文件2大小:103920648
NIO第7次用时 2203
文件2大小:103920648
NIO第8次用时 1672
文件2大小:103920648
NIO第9次用时 1656
文件2大小:103920648
NIO第10次用时 2234
文件2大小:103920648
NIO第11次用时 1813
文件2大小:103920648
NIO第12次用时 1937
文件2大小:103920648
NIO第13次用时 3594
文件2大小:103920648
NIO第14次用时 1578
文件2大小:103920648
NIO第15次用时 2328
文件2大小:103920648
NIO第16次用时 1750
文件2大小:103920648
NIO第17次用时 1516
文件2大小:103920648
NIO第18次用时 2156
文件2大小:103920648
NIO第19次用时 1813
文件2大小:103920648
NIO第20次用时 1875


Nio代码
    public static void copyFileNew(File sourceFile, File destFile)  
                throws IOException {  
            if (!destFile.exists()) {  
                destFile.createNewFile();  
            }  
      
            FileChannel source = null;  
            FileChannel destination = null;  
            try {  
                source = new FileInputStream(sourceFile).getChannel();  
                destination = new FileOutputStream(destFile).getChannel();  
                destination.transferFrom(source, 0, source.size());  
            } finally {  
                if (source != null) {  
                    source.close();  
                }  
                if (destination != null) {  
                    destination.close();  
                }  
            }  
        }  

 



Io代码
    public static void copyFileOld(File source, File dest) throws IOException {  
            if (!dest.exists()) {  
                dest.createNewFile();  
            }  
            InputStream in = null;  
            OutputStream out = null;  
            try {  
                in = new FileInputStream(source);  
                out = new FileOutputStream(dest);  
      
                // Transfer bytes from in to out  
                byte[] buf = new byte[1024];  
                int len;  
                while ((len = in.read(buf)) > 0) {  
                    out.write(buf, 0, len);  
                }  
            } finally {  
                if (in != null) {  
                    in.close();  
                }  
                if (out != null) {  
                    out.close();  
                }  
            }  
        }  
相关标签: java nio io