Java NIOで高速ファイルコピー例
2012/01/04 16:41Update
Java NIOを使った高速ファイルコピー例です。
public static void copyFile(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);
// Windows 上で大サイズファイルのコピーは問題があるようで、
// 最大サイズ: 64Mb - 32Kbにします
int maxCount = (64 * 1024 * 1024) - (32 * 1024);
long size = inChannel.size(); //INファイルサイズ
long position = 0;
while ( position < size ) {
//コピー
position += inChannel.transferTo( position, maxCount, outChannel );
}
} finally {
if ( inChannel != null ) {
inChannel.close();
}
if ( outChannel != null ){
outChannel.close();
}
}
}
.
Sponsored Link
Comments
- Relative Articles
- Java開発及び実行環境の構築 | Linux篇 - (2008/08/31 20:34)
- Java開発及び実行環境の構築 | Windows篇 - (2008/08/31 21:18)
- 5分でJava Hello World! - (2008/08/31 22:13)
- Java言語の制御構文 - 条件分岐if/else/else if - (2008/10/01 21:30)
- Java言語の繰り返し制御構文 - for文 - (2008/10/03 18:22)
- Java言語の繰り返し制御構文 - do ... while文 - (2008/10/03 21:23)
- Java言語の繰り返し制御構文 - while文 - (2008/10/03 21:32)
- Java言語の基礎 - javacコマンドによるコンパイル - (2008/10/10 17:58)
- Java アクセス修飾子概要 - (2008/10/29 18:31)
- Javaアノテーション機能 概要 - (2009/02/12 13:06)