Skip to content

Instantly share code, notes, and snippets.

@nandub
Created May 30, 2009 03:49
Show Gist options
  • Save nandub/120356 to your computer and use it in GitHub Desktop.
Save nandub/120356 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
{
// 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