お世話になります。
とあるディレクトリ(以下A)に保存された画像ファイルを全て他のディレクトリ(以下B)に移動させるという処理を行おうとしています。
A内に保存されている画像ファイルの情報になります。
ファイル形式:jpeg
1枚当たりのサイズ:約250kB
枚数:約30000枚
総サイズ:30000枚*250kB = 約7.5GB
以下、使用を考えているソースです。
moveFile
1File srcDir = new File("Aのパス"); 2ArrayList<File> fileList = new ArrayList<File>(); 3for (File imgFile : srcDir.listFiles()) { 4 fileList.add(imgFile); 5} 6//ファイル移動(org.apache.commons.io.FileUtilsライブラリ使用) 7for (File file : fileList) { 8 FileUtils.moveFileToDirectory(file, "Bのパス", false); 9}
上記処理だと、総サイズが100MBなど少ない場合は問題ありませんが、一気に数GBのファイルを処理しようとするとOutOfMemoryが発生するのではと懸念しています。
そこで、どのように実装すればメモリ不足エラーの発生リスクを最小限に抑えられるかご教授いただけませんでしょうか。
どうぞよろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー