使用NIO的Java快速文件复制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用NIO的Java快速文件复制相关的知识,希望对你有一定的参考价值。

Java Fast File Copy using NIO
  1. public static void fileCopy( File in, File out )
  2. throws IOException
  3. {
  4. FileChannel inChannel = new FileInputStream( in ).getChannel();
  5. FileChannel outChannel = new FileOutputStream( out ).getChannel();
  6. try
  7. {
  8. // inChannel.transferTo(0, inChannel.size(), outChannel); // original -- apparently has trouble copying large files on Windows
  9.  
  10. // magic number for Windows, 64Mb - 32Kb)
  11. int maxCount = (64 * 1024 * 1024) - (32 * 1024);
  12. long size = inChannel.size();
  13. long position = 0;
  14. while ( position < size )
  15. {
  16. position += inChannel.transferTo( position, maxCount, outChannel );
  17. }
  18. }
  19. finally
  20. {
  21. if ( inChannel != null )
  22. {
  23. inChannel.close();
  24. }
  25. if ( outChannel != null )
  26. {
  27. outChannel.close();
  28. }
  29. }
  30. }

以上是关于使用NIO的Java快速文件复制的主要内容,如果未能解决你的问题,请参考以下文章

java----使用NIO进行快速的文件拷贝

如何在android中使用java.nio.file包? [复制]

Java NIO 利用通道完成文件复制(MappedByteBuffer)

JAVA NIO

java nio实现文件复制

Java NIO 之 复制文件 案例