BAEL-7092: How to get the size of a file in MB, KB & GB in java (#15117)
* BAEL-7092: How to get the size of a file in MB, KB & GB in java * Update JavaFileSizeUnitTest.java * BAEL-7092: How to get the size of a file in MB, KB & GB in java --------- Co-authored-by: Grzegorz Piwowarek <gpiwowarek@gmail.com>
This commit is contained in:
parent
1a555cd9a7
commit
0838279c6a
|
@ -0,0 +1,28 @@
|
||||||
|
package com.baeldung.size;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
public class FileSizeUtils {
|
||||||
|
public static long getFileSizeInBytes(File file) {
|
||||||
|
if (file.exists()) {
|
||||||
|
return file.length();
|
||||||
|
} else {
|
||||||
|
throw new IllegalArgumentException("File not found.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static double getFileSizeInKilobytes(File file) {
|
||||||
|
long bytes = getFileSizeInBytes(file);
|
||||||
|
return (double) bytes / 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static double getFileSizeInMegabytes(File file) {
|
||||||
|
double kilobytes = getFileSizeInKilobytes(file);
|
||||||
|
return kilobytes / 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static double getFileSizeInGigabytes(File file) {
|
||||||
|
double megabytes = getFileSizeInMegabytes(file);
|
||||||
|
return megabytes / 1024;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,8 @@
|
||||||
package com.baeldung.size;
|
package com.baeldung.size;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import org.apache.commons.io.FileUtils;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
|
@ -10,9 +12,9 @@ import java.net.URL;
|
||||||
import java.nio.channels.FileChannel;
|
import java.nio.channels.FileChannel;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import org.apache.commons.io.FileUtils;
|
|
||||||
import org.junit.Before;
|
import static org.junit.Assert.assertEquals;
|
||||||
import org.junit.Test;
|
import static org.junit.Assert.fail;
|
||||||
|
|
||||||
public class JavaFileSizeUnitTest {
|
public class JavaFileSizeUnitTest {
|
||||||
private static final long EXPECTED_FILE_SIZE_IN_BYTES = 11;
|
private static final long EXPECTED_FILE_SIZE_IN_BYTES = 11;
|
||||||
|
@ -85,4 +87,23 @@ public class JavaFileSizeUnitTest {
|
||||||
assertEquals(EXPECTED_FILE_SIZE_IN_BYTES, stream.available());
|
assertEquals(EXPECTED_FILE_SIZE_IN_BYTES, stream.available());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@Test
|
||||||
|
public void whenGetFileSizeInDifferentUnits_thenCorrect(){
|
||||||
|
filePath = String.join(File.separator, new String[] { "src", "test", "resources", "size", "sample_file_1.in" });
|
||||||
|
File file = new File(filePath);
|
||||||
|
if (file.exists()) {
|
||||||
|
long expectedBytes = file.length();
|
||||||
|
double expectedKilobytes = (double) expectedBytes / 1024;
|
||||||
|
double expectedMegabytes = expectedKilobytes / 1024;
|
||||||
|
double expectedGigabytes = expectedMegabytes / 1024;
|
||||||
|
|
||||||
|
assertEquals(expectedBytes, FileSizeUtils.getFileSizeInBytes(file));
|
||||||
|
assertEquals(expectedKilobytes, FileSizeUtils.getFileSizeInKilobytes(file), 0.01);
|
||||||
|
assertEquals(expectedMegabytes, FileSizeUtils.getFileSizeInMegabytes(file), 0.01);
|
||||||
|
assertEquals(expectedGigabytes, FileSizeUtils.getFileSizeInGigabytes(file), 0.01);
|
||||||
|
} else {
|
||||||
|
fail("File not found.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue