Dateigröße in Java abrufen

Sheeraz Gul 12 Oktober 2023
  1. Holen Sie sich die Dateigröße mit der Klasse File von Java IO
  2. Holen Sie sich die Dateigröße mit der Klasse Dateien von Java NIO
  3. Holen Sie sich die Dateigröße mit der Klasse FileUtils von Apache Commons IO
Dateigröße in Java abrufen

Java bietet verschiedene Methoden, um die Größe einer Datei in Bytes zu ermitteln. Dieses Tutorial zeigt verschiedene Methoden, um die Dateigröße in Java zu ermitteln.

Holen Sie sich die Dateigröße mit der Klasse File von Java IO

Die Klasse File des Java IO-Pakets bietet die Funktionalität, um die Größe einer Datei in Bytes zu erhalten. Die Klasse File hat eine Methode length, die die Grösse einer Datei in Bytes zurückgibt.

Wenn die Datei ein Verzeichnis ist, gibt die length()-Methode einen nicht spezifizierten Wert zurück. Bevor Sie also die Größe überprüfen, vergewissern Sie sich, dass die Datei existiert und kein Verzeichnis ist.

Wir haben eine Datei delftstack.pdf mit einer Größe von 240 Kilobyte ausgewählt. Versuchen wir ein Beispiel, um die Größe dieser Datei mit der Java-Klasse File zu überprüfen:

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!");
    }
  }
}

Der obige Code berechnet zuerst die Größe der angegebenen Datei in Bytes mit Java IO und konvertiert sie dann in andere Einheiten. Siehe Ausgabe:

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

Holen Sie sich die Dateigröße mit der Klasse Dateien von Java NIO

Die Java-NIO-Paketklasse Files hat eine Methode size(), um die Größe einer Datei zu erhalten. Die Methode size() gibt die Dateigrösse in Bytes zurück.

Versuchen wir ein Beispiel mit derselben Datei:

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();
    }
  }
}

Der obige Code verwendet die Methode Files.size() aus dem Java-NIO-Paket, um die Größe einer Datei in Java zu ermitteln. Siehe Ausgabe:

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

Das NIO-Paket hat auch eine andere Klasse, FileChannel, die auch verwendet werden kann, um die Größe einer Datei in Java zu erhalten. Es hat eine ähnliche Methode size(), um die Größe einer Datei in Java zu erhalten:

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();
    }
  }
}

Der obige Code verwendet die Klasse FileChannel aus dem NIO-Paket, um die Größe in Bytes zu erhalten. Siehe Ausgabe:

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

Holen Sie sich die Dateigröße mit der Klasse FileUtils von Apache Commons IO

Das Apache Commons IO bietet viele Funktionalitäten, und FileUtils ist eine davon, die verwendet wird, um die Dateioperationen in Java zu handhaben. Die Klasse FileUtils von Apache Commons hat eine Methode Sizeof(), die die Grösse einer Datei in Bytes erhalten kann.

Versuchen wir ein Beispiel mit Apache Commons IO, um die Größe einer Datei in Java zu ermitteln:

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();
    }
  }
}

Der obige Code verwendet die Klasse FileUtils von Java, um die Größe der angegebenen Datei zu erhalten. Siehe Ausgabe:

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 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

Verwandter Artikel - Java File