How to get File Size in Bytes KB MB GB TB - RameshMF/java-io-guide GitHub Wiki
Overview
In this example, we will write generic method to get file size in bytes, kilobytes, mega bytes, GB,TB.
File Size in B,KB,MB,GB and TB Example
- The readableFileSize() method in the example, pass the size of the file in long type.
- The readableFileSize() method returns String representing the file size (B,KB,MB,GB,TB).
import java.io.File;
import java.text.DecimalFormat;
/**
* This Java program demonstrates how to get file size in bytes, kilobytes, mega bytes, GB,TB.
* @author javaguides.net
*/
public class FileUtils {
/**
* Given the size of a file outputs as human readable size using SI prefix.
* <i>Base 1024</i>
* @param size Size in bytes of a given File.
* @return SI String representing the file size (B,KB,MB,GB,TB).
*/
public static String readableFileSize(long size) {
if (size <= 0) {
return "0";
}
final String[] units = new String[] {"B", "KB", "MB", "GB", "TB"};
int digitGroups = (int)(Math.log10(size) / Math.log10(1024));
return new DecimalFormat("#,##0.#").format(size / Math.pow(1024, digitGroups))
+ " " + units[digitGroups];
}
public static void main(String[] args) {
File file = new File("sample.txt");
String size = readableFileSize(file.length());
System.out.println(size);
}
}
Output:
64 B
Increase the file and test it again.
164 KB
Reference
https://docs.oracle.com/javase/8/docs/api/java/text/DecimalFormat.html https://docs.oracle.com/javase/8/docs/api/java/io/File.html