To Sort files by size in a directory in Java

Sorting files by size in a directory using Java involves several steps. You need to read the files from the directory, get their sizes, and then sort them based on these sizes. Here’s a theoretical overview followed by practical implementation.

Sort files by size in a directory in java

Steps:

1.Read Files from Directory: Use the File class to list all files in a directory.
2.Get File Sizes: For each file, retrieve its size using the length() method.
3.Sort Files: Use a sorting algorithm or utility that sorts the files based on their sizes.

Code Implementation:

import java.io.File;
import java.util.Arrays;
import java.util.Comparator;

public class FileSorter {

    public static void main(String[] args) {
        String directoryPath = "path/to/your/directory";
        File directory = new File(directoryPath);
        if (!directory.isDirectory()) {
            System.out.println("The provided path is not a directory.");
            return;
        }
        
        File[] files = directory.listFiles();
        if (files == null || files.length == 0) {
            System.out.println("The directory is empty or an error occurred.");
            return;
        }
        Arrays.sort(files, new Comparator<File>() {
            @Override
            public int compare(File f1, File f2) {
                long size1 = f1.length();
                long size2 = f2.length();
                return Long.compare(size1, size2);
            }
        });
        for (File file : files) {
            System.out.println(file.getName() + " - " + file.length() + " bytes");
        }
    }
}

Explanation:

Directory Path: The path to the directory containing the files is specified.
Directory Validation: Checks if the provided path is a directory.
Listing Files: Uses listFiles() method to get an array of File objects representing the files in the directory.
Null and Empty Check: Checks if the directory is empty or if an error occurred while listing the files.
Sorting: The Arrays.sort method is used with a custom Comparator to sort the files by size. The compare method of the Comparator interface compares the size of two files using ‘f1.length()’ and ‘f2.length()’.

Output the sorted Files:Iterates through the sorted array and prints the file names and their sizes.

Output:
file4.txt - 400 bytes
file2.txt - 800 bytes
file1.txt - 1200 bytes
file3.txt - 2500 bytes
file5.txt - 3100 bytes

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top