Java에서 파일 크기 얻기

Sheeraz Gul 2023년10월12일
  1. Java IO에서 파일 클래스를 사용하여 파일 크기 가져오기
  2. Java NIO에서 파일 클래스를 사용하여 파일 크기 가져오기
  3. Apache Commons IO에서 FileUtils 클래스를 사용하여 파일 크기 가져오기
Java에서 파일 크기 얻기

Java는 파일 크기를 바이트 단위로 가져오는 다양한 방법을 제공합니다. 이 자습서는 Java에서 파일 크기를 가져오는 다양한 방법을 보여줍니다.

Java IO에서 파일 클래스를 사용하여 파일 크기 가져오기

Java IO 패키지의 File 클래스는 파일 크기를 바이트 단위로 가져오는 기능을 제공합니다. File 클래스에는 파일 크기를 바이트 단위로 반환하는 메서드 길이가 있습니다.

File이 디렉토리인 경우 length() 메서드는 지정되지 않은 값을 반환합니다. 따라서 크기를 확인하기 전에 파일이 존재하고 디렉토리가 아닌지 확인하십시오.

크기가 240킬로바이트인 delftstack.pdf 파일을 선택했습니다. Java의 File 클래스를 사용하여 이 파일의 크기를 확인하는 예제를 시도해 보겠습니다.

package delftstack;

import java.io.File;

public class Example {
  public static void main(String[] args) {
    String File_Name = "delftstack.pdf";
    Get_FileSize(File_Name);
  }

  public static void Get_FileSize(String File_Name) {
    File Demo_File = new File(File_Name);

    if (Demo_File.exists()) {
      // size of a file using different units
      long File_Bytes = Demo_File.length();

      long Kilo_Bytes = (File_Bytes / 1024);
      long Mega_Bytes = (Kilo_Bytes / 1024);
      long Giga_Bytes = (Mega_Bytes / 1024);
      long Tera_Bytes = (Giga_Bytes / 1024);
      long Peta_Bytes = (Tera_Bytes / 1024);
      long Exa_Bytes = (Peta_Bytes / 1024);
      long Zetta_Bytes = (Exa_Bytes / 1024);
      long Yotta_Bytes = (Zetta_Bytes / 1024);

      System.out.println(String.format("%,d Size in bytes", File_Bytes));
      System.out.println(String.format("%,d Size in kilobytes", Kilo_Bytes));
      System.out.println(String.format("%,d Size in megabytes", Mega_Bytes));
      System.out.println(String.format("%,d Size in gigabytes", Giga_Bytes));
      System.out.println(String.format("%,d Size in terabytes", Tera_Bytes));
      System.out.println(String.format("%,d Size in petabytes", Peta_Bytes));
      System.out.println(String.format("%,d Size in exabytes", Exa_Bytes));
      System.out.println(String.format("%,d Size in zettabytes", Zetta_Bytes));
      System.out.println(String.format("%,d Size in yottabytes", Yotta_Bytes));

    } else {
      System.out.println("The input File does not exist!");
    }
  }
}

위의 코드는 먼저 Java IO를 사용하여 주어진 파일의 크기를 바이트 단위로 계산한 다음 다른 단위로 변환합니다. 출력 참조:

245,681 Size in bytes
239 Size in kilobytes
0 Size in megabytes
0 Size in gigabytes
0 Size in terabytes
0 Size in petabytes
0 Size in exabytes
0 Size in zettabytes
0 Size in yottabytes

Java NIO에서 파일 클래스를 사용하여 파일 크기 가져오기

Java NIO 패키지 클래스 Files에는 파일 크기를 가져오는 size() 메서드가 있습니다. size() 메서드는 파일 크기를 바이트 단위로 반환합니다.

동일한 파일로 예제를 시도해 보겠습니다.

package delftstack;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Example {
  public static void main(String[] args) {
    String File_Name = "delftstack.pdf";
    Get_FileSize(File_Name);
  }

  public static void Get_FileSize(String File_Name) {
    Path File_Path = Paths.get(File_Name);

    try {
      // size of a file using different units
      long File_Bytes = Files.size(File_Path);

      long Kilo_Bytes = (File_Bytes / 1024);
      long Mega_Bytes = (Kilo_Bytes / 1024);
      long Giga_Bytes = (Mega_Bytes / 1024);
      long Tera_Bytes = (Giga_Bytes / 1024);
      long Peta_Bytes = (Tera_Bytes / 1024);
      long Exa_Bytes = (Peta_Bytes / 1024);
      long Zetta_Bytes = (Exa_Bytes / 1024);
      long Yotta_Bytes = (Zetta_Bytes / 1024);

      System.out.println(String.format("%,d Size in bytes", File_Bytes));
      System.out.println(String.format("%,d Size in kilobytes", Kilo_Bytes));
      System.out.println(String.format("%,d Size in megabytes", Mega_Bytes));
      System.out.println(String.format("%,d Size in gigabytes", Giga_Bytes));
      System.out.println(String.format("%,d Size in terabytes", Tera_Bytes));
      System.out.println(String.format("%,d Size in petabytes", Peta_Bytes));
      System.out.println(String.format("%,d Size in exabytes", Exa_Bytes));
      System.out.println(String.format("%,d Size in zettabytes", Zetta_Bytes));
      System.out.println(String.format("%,d Size in yottabytes", Yotta_Bytes));
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

위의 코드는 Java NIO 패키지의 Files.size() 메서드를 사용하여 Java에서 파일 크기를 가져옵니다. 출력 참조:

245,681 Size in bytes
239 Size in kilobytes
0 Size in megabytes
0 Size in gigabytes
0 Size in terabytes
0 Size in petabytes
0 Size in exabytes
0 Size in zettabytes
0 Size in yottabytes

NIO 패키지에는 Java에서 파일 크기를 가져오는 데 사용할 수 있는 또 다른 클래스인 FileChannel도 있습니다. Java에서 파일 크기를 가져오는 비슷한 메서드 size()가 있습니다.

package delftstack;

import java.io.IOException;
import java.nio.channels.FileChannel;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Example {
  public static void main(String[] args) {
    String File_Name = "delftstack.pdf";
    Get_FileSize(File_Name);
  }

  public static void Get_FileSize(String File_Name) {
    Path File_Path = Paths.get(File_Name);
    FileChannel File_Channel;

    try {
      // size of a file using different units
      File_Channel = FileChannel.open(File_Path);
      long File_Bytes = File_Channel.size();
      File_Channel.close();

      long Kilo_Bytes = (File_Bytes / 1024);
      long Mega_Bytes = (Kilo_Bytes / 1024);
      long Giga_Bytes = (Mega_Bytes / 1024);
      long Tera_Bytes = (Giga_Bytes / 1024);
      long Peta_Bytes = (Tera_Bytes / 1024);
      long Exa_Bytes = (Peta_Bytes / 1024);
      long Zetta_Bytes = (Exa_Bytes / 1024);
      long Yotta_Bytes = (Zetta_Bytes / 1024);

      System.out.println(String.format("%,d Size in bytes", File_Bytes));
      System.out.println(String.format("%,d Size in kilobytes", Kilo_Bytes));
      System.out.println(String.format("%,d Size in megabytes", Mega_Bytes));
      System.out.println(String.format("%,d Size in gigabytes", Giga_Bytes));
      System.out.println(String.format("%,d Size in terabytes", Tera_Bytes));
      System.out.println(String.format("%,d Size in petabytes", Peta_Bytes));
      System.out.println(String.format("%,d Size in exabytes", Exa_Bytes));
      System.out.println(String.format("%,d Size in zettabytes", Zetta_Bytes));
      System.out.println(String.format("%,d Size in yottabytes", Yotta_Bytes));

    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

위의 코드는 NIO 패키지의 FileChannel 클래스를 사용하여 크기를 바이트 단위로 가져옵니다. 출력 참조:

245,681 Size in bytes
239 Size in kilobytes
0 Size in megabytes
0 Size in gigabytes
0 Size in terabytes
0 Size in petabytes
0 Size in exabytes
0 Size in zettabytes
0 Size in yottabytes

Apache Commons IO에서 FileUtils 클래스를 사용하여 파일 크기 가져오기

Apache Commons IO는 많은 기능을 제공하며 FileUtils는 Java에서 파일 작업을 처리하는 데 사용되는 기능 중 하나입니다. Apache Commons의 FileUtils 클래스에는 파일 크기를 바이트 단위로 가져올 수 있는 Sizeof() 메서드가 있습니다.

Apache Commons IO를 사용하여 Java에서 파일 크기를 가져오는 예를 살펴보겠습니다.

package delftstack;

import java.io.File;
import org.apache.commons.io.FileUtils;

public class Example {
  public static void main(String[] args) {
    String File_Name = "delftstack.pdf";
    Get_FileSize(File_Name);
  }

  public static void Get_FileSize(String File_Name) {
    File Demo_File = new File(File_Name);

    try {
      // size of a file using different units
      long File_Bytes = FileUtils.sizeOf(Demo_File);

      long Kilo_Bytes = (File_Bytes / 1024);
      long Mega_Bytes = (Kilo_Bytes / 1024);
      long Giga_Bytes = (Mega_Bytes / 1024);
      long Tera_Bytes = (Giga_Bytes / 1024);
      long Peta_Bytes = (Tera_Bytes / 1024);
      long Exa_Bytes = (Peta_Bytes / 1024);
      long Zetta_Bytes = (Exa_Bytes / 1024);
      long Yotta_Bytes = (Zetta_Bytes / 1024);

      System.out.println(String.format("%,d Size in bytes", File_Bytes));
      System.out.println(String.format("%,d Size in kilobytes", Kilo_Bytes));
      System.out.println(String.format("%,d Size in megabytes", Mega_Bytes));
      System.out.println(String.format("%,d Size in gigabytes", Giga_Bytes));
      System.out.println(String.format("%,d Size in terabytes", Tera_Bytes));
      System.out.println(String.format("%,d Size in petabytes", Peta_Bytes));
      System.out.println(String.format("%,d Size in exabytes", Exa_Bytes));
      System.out.println(String.format("%,d Size in zettabytes", Zetta_Bytes));
      System.out.println(String.format("%,d Size in yottabytes", Yotta_Bytes));
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

위의 코드는 Java의 FileUtils 클래스를 사용하여 주어진 파일의 크기를 가져옵니다. 출력 참조:

245,681 Size in bytes
239 Size in kilobytes
0 Size in megabytes
0 Size in gigabytes
0 Size in terabytes
0 Size in petabytes
0 Size in exabytes
0 Size in zettabytes
0 Size in yottabytes
작가: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

관련 문장 - Java File