- ベストアンサー
ファイルコピーについて(初心者です)
JAVAには、あるファイルを別のディレクトリにコピーや移動するクラスはあるのでしょうか? それとも、一旦メモリに読み出して、所望のディレクトリに同じ名前で書き出すしかないのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
移動は java.io.File#renameTo(File f) でできます。このメソッドはディレクトリが違っていればそこに移動します (UNIX系OSの mv コマンドや rename() 関数、Windows での move コマンドとほぼ同じです)。 コピーの方法は、まずコピー元を FileInputStream で開き、コピー先を FileOutputStream で開きます。次にそれぞれのインスタンスについて getChannel() を行って FileChannel のインスタンスを取り出します。最後に FileInputStream から取り出した FileChannel のインスタンスに対して transferTo() を使って FileOutputStream から取り出した FileChannel のインスタンスを指定すれば内容が全てコピーされます。あとは close() して終わり。
その他の回答 (1)
noname#18558
回答No.1
標準APIにはありません。 Jakarta commonsのIOライブラリには、そういう実装があります。
質問者
お礼
やはり、標準のAPIにはないのですね。 Jakarta commonsというものを知らないので、調べてみます。 ありがとうございました。
お礼
詳しい説明どうもありがとうございました。
補足
原理としては、 ファイルの内容を一旦読み出して吐き出すのではなく、 ファイルのプロパティを変更するということでしょうか? この場合、コピー処理時間は発生しないのですよね?