Skip to content

Instantly share code, notes, and snippets.

@inferjay
Created August 12, 2013 03:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save inferjay/6208021 to your computer and use it in GitHub Desktop.
Save inferjay/6208021 to your computer and use it in GitHub Desktop.
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();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment