Java 使用NIO進行快速的文件拷貝的代碼

833p 11年前發布 | 3K 次閱讀 Java lomboz eclipse4.3

public static void fileCopy( File in, File out ) throws IOException 
{ 
    FileChannel inChannel = new FileInputStream( in ).getChannel(); 
    FileChannel outChannel = new FileOutputStream( out ).getChannel(); 
    try
    { 
        inChannel.transferTo(0, inChannel.size(), outChannel);      
    // original -- apparently has trouble copying large files on Windows 
        // magic number for Windows, 64Mb - 32Kb) 
    int maxCount = (64 * 1024 * 1024) - (32 * 1024); 
    long size = inChannel.size(); 
    long position = 0; 
    while ( position < size ) 
    { 
        position += inChannel.transferTo( position, maxCount, outChannel ); 
    } 
    } 
    finally
    { 
    if ( inChannel != null ) 
    { 
        inChannel.close(); 
    } 
    if ( outChannel != null ) 
    { 
        outChannel.close(); 
    } 
    } 
}

 本文由用戶 833p 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!