1. ホーム
  2. java

[解決済み] Javaでファイルをコピーする標準的な簡潔な方法?

2022-03-23 16:45:13

質問

Javaでファイルをコピーする唯一の方法が、ストリームを開き、バッファを宣言し、1つのファイルを読み、それをループし、もう1つのスチームに書き出すというものであることが、いつも気になります。 ウェブには、この種のソリューションの類似した、しかしまだわずかに異なる実装が散見されます。

Java言語の範囲内で(つまりOS固有のコマンドを実行しない)もっと良い方法はないでしょうか? おそらく、信頼できるオープンソースのユーティリティパッケージで、少なくともこの基本的な実装を不明瞭にして、1行のソリューションを提供するようなものでしょうか?

解決方法は?

上記のtoolkitが言及しているように、Apache Commons IOは、具体的には、以下のようになります。 ファイルユーティリティ . copyFile() これは重い仕事をすべて処理してくれます。

また、追記として、最近のFileUtilsのバージョン(2.0.1リリースなど)では、ファイルコピーにNIOを使用する機能が追加されていることに注意してください。 NIOはファイルコピーのパフォーマンスを大幅に向上させることができる これは、NIOルーチンが、Javaレイヤーを通してバイトの読み書きをするのではなく、OS/ファイルシステムに直接コピーを委ねることが大きな理由です。 そのため、パフォーマンスを求めるのであれば、FileUtilsの最新バージョンを使用しているかどうかを確認する価値があるかもしれません。