Java לקבלת גודל קובץ

היום נסתכל על דרכים שונות לקבלת גודל קובץ ב-Java.

קבלת גודל קובץ ב-Java

קיימים מספר קבוצות שניתן להשתמש בהן לתוכנית קבלת גודל קובץ ב-Java. כמה מהן הם:

  1. קבלת גודל קובץ ב-Java באמצעות מחלקת File
  2. קבלת גודל קובץ ב-Java באמצעות מחלקת FileChannel
  3. קבלת גודל קובץ ב-Java באמצעות מחלקת FileUtils של Apache Commons IO

לפני שנביט בתוכנית דוגמה לקבלת גודל קובץ, יש לנו קובץ PDF דוגמה בגודל של 2969575 בתים.

קבלת גודל קובץ ב-Java באמצעות מחלקת File

שיטת File length() ב-Java מחזירה את גודל הקובץ בבתים. הערך המוחזר אינו מוגדר אם הקובץ מציין ספרייה. לכן לפני קריאה לשיטה זו לקבלת גודל קובץ ב-Java, וודאו שהקובץ קיים ושאינו ספרייה. להלן דוגמה פשוטה לתוכנית קבלת גודל קובץ ב-Java באמצעות מחלקת File.

package com.journaldev.getfilesize;

import java.io.File;

public class JavaGetFileSize {

	static final String FILE_NAME = "/Users/pankaj/Downloads/file.pdf";

	public static void main(String[] args) {
		File file = new File(FILE_NAME);
		if (!file.exists() || !file.isFile()) return;

		System.out.println(getFileSizeBytes(file));
		System.out.println(getFileSizeKiloBytes(file));
		System.out.println(getFileSizeMegaBytes(file));
	}

	private static String getFileSizeMegaBytes(File file) {
		return (double) file.length() / (1024 * 1024) + " mb";
	}
	
	private static String getFileSizeKiloBytes(File file) {
		return (double) file.length() / 1024 + "  kb";
	}

	private static String getFileSizeBytes(File file) {
		return file.length() + " bytes";
	}
}

קבלת גודל קובץ ב-Java באמצעות מחלקת FileChannel

ניתן להשתמש בשיטת FileChannel size() כדי לקבל את גודל הקובץ בבתים.

package com.journaldev.getfilesize;

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

public class JavaGetFileSizeUsingFileChannel {

	static final String FILE_NAME = "/Users/pankaj/Downloads/file.pdf";

	public static void main(String[] args) {

		Path filePath = Paths.get(FILE_NAME);
		FileChannel fileChannel;
		try {
			fileChannel = FileChannel.open(filePath);
			long fileSize = fileChannel.size();
			System.out.println(fileSize + " bytes");
			fileChannel.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

קבלת גודל קובץ ב-Java באמצעות מחלקת Apache Commons IO FileUtils

אם כבר משתמשים ב-Apache Commons IO בפרויקט שלכם, אז ניתן להשתמש בשיטת FileUtils sizeOf כדי לקבל את גודל הקובץ ב-Java.

package com.journaldev.getfilesize;

import java.io.File;

import org.apache.commons.io.FileUtils;

public class JavaGetFileSizeUsingApacheCommonsIO {

	static final String FILE_NAME = "/Users/pankaj/Downloads/file.pdf";

	public static void main(String[] args) {
		File file = new File(FILE_NAME);

		long fileSize = FileUtils.sizeOf(file);

		System.out.println(fileSize + " bytes");
	}
}

זו כל התוכניות לקבלת גודל קובץ ב-Java.

ניתן לבדוק דוגמאות נוספות של קובץ IO ב-Java ב-מאגר ה-GitHub שלנו.

Source:
https://www.digitalocean.com/community/tutorials/java-get-file-size