「ファイルサイズを MB 単位で整形して表示しつつソート」する完全な Java プログラム例を紹介します。
プロジェクト概要
- 目的: 指定フォルダ内のファイルを取得し、サイズを MB 単位で表示しながらソートする。
- ソート基準: ファイルサイズ(大きい順 or 小さい順)。
- 整形: バイト数を MB に変換して「xx.xx MB」の形式で表示。
完全なコード例
import java.io.File;
import java.util.*;
public class FileSizeSort {
public static void main(String[] args) {
// 対象ディレクトリを指定(例: C:/example)
File dir = new File("C:/example");
// ディレクトリ内のファイル一覧を取得
File[] files = dir.listFiles();
if (files == null) {
System.out.println("ディレクトリが存在しないか、アクセスできません。");
return;
}
// ファイルサイズでソート(大きい順)
Arrays.sort(files, Comparator.comparingLong(File::length).reversed());
// 結果を表示
System.out.println("=== ファイルサイズランキング (MB単位) ===");
for (File f : files) {
if (f.isFile()) {
double sizeMB = f.length() / (1024.0 * 1024.0); // バイト→MB変換
System.out.printf("%-30s : %.2f MB%n", f.getName(), sizeMB);
}
}
}
}
Java実行例(仮想出力)
=== ファイルサイズランキング (MB単位) ===
report.pdf : 12.45 MB
video.mp4 : 8.32 MB
data.csv : 1.27 MB
notes.txt : 0.05 MB
応用ポイント
- 昇順にしたい場合:
Arrays.sort(files, Comparator.comparingLong(File::length)); - 複合条件ソート: サイズが同じならファイル名順にする
Arrays.sort(files, Comparator .comparingLong(File::length).reversed() .thenComparing(File::getName)); - GB単位表示:
f.length() / (1024.0 * 1024.0 * 1024.0)に変更。
これで「ファイルサイズを MB 単位で整形して表示しつつソート」ができます。
