Verwenden Sie die length()Methode der FileKlasse, um die Größe der Datei in Bytes zurückzugeben.
// Get file from file name
File file = new File("U:\intranet_root\intranet\R1112B2.zip");
// Get length of file in byteslong fileSizeInBytes = file.length();
// Convert the bytes to Kilobytes (1 KB = 1024 Bytes)long fileSizeInKB = fileSizeInBytes / 1024;
// Convert the KB to MegaBytes (1 MB = 1024 KBytes)long fileSizeInMB = fileSizeInKB / 1024;
if (fileSizeInMB > 27) {
...
}
Sie könnten die Konvertierung in einem Schritt kombinieren, aber ich habe versucht, den Prozess vollständig zu veranschaulichen.
File file = new File("infilename");
// Get the number of bytes in the filelong sizeInBytes = file.length();
//transform in MBlong sizeInMb = sizeInBytes / (1024 * 1024);
Vielen Dank für diese Multiplikation. Dies erspart mir das Schreiben (1024 * 1024). 4 Tastenanschläge wurden gespeichert. : D
TapanHP
3
Sie können die Länge der Datei mit File # length () abrufen , wodurch ein Wert in Byte zurückgegeben wird. Sie müssen diesen also durch 1024 * 1024 teilen, um den Wert in MB zu erhalten.
Sie können Teilzeichenfolgen verwenden, um ein Portio von String zu erhalten, das 1 MB entspricht:
publicstaticvoidmain(String[] args){
// Get length of String in bytes
String string = "long string";
long sizeInBytes = string.getBytes().length;
int oneMb=1024*1024;
if (sizeInBytes>oneMb) {
String string1Mb=string.substring(0, oneMb);
}
}
FileChannel verfügt über die size () -Methode, um die Größe der Datei zu bestimmen.
String fileName = "D://words.txt";
Path filePath = Paths.get(fileName);
FileChannel fileChannel = FileChannel.open(filePath);
long fileSize = fileChannel.size();
System.out.format("The size of the file: %d bytes", fileSize);
Sie können die Dateigröße auch mit der Apache CommonsMethode 'FileUtils' sizeOf () bestimmen . Wenn Sie maven verwenden, fügen Sie dies der pom.xmlDatei hinzu.
String fileName = "D://words.txt";
File f = new File(fileName);
long fileSize = FileUtils.sizeOf(f);
System.out.format("The size of the file: %d bytes", fileSize);
Diese Methoden geben die Größe in Bytes aus. Um die MB-Größe zu erhalten, müssen Sie die Dateigröße von (1024 * 1024) teilen.
Jetzt können Sie einfach die if-elseBedingungen verwenden, da die Größe in MB erfasst wird.
Wenn Sie die Werte einfach als Zeichenfolge anzeigen möchten, sind dies einfache Wrapper. Sie können die angezeigten Standard-Dezimalstellen jederzeit anpassen
fun File.sizeStr(): String = size.toString()
fun File.sizeStrInKb(decimals: Int = 0): String = "%.${decimals}f".format(sizeInKb)
fun File.sizeStrInMb(decimals: Int = 0): String = "%.${decimals}f".format(sizeInMb)
fun File.sizeStrInGb(decimals: Int = 0): String = "%.${decimals}f".format(sizeInGb)
fun File.sizeStrWithBytes(): String = sizeStr() + "b"
fun File.sizeStrWithKb(decimals: Int = 0): String = sizeStrInKb(decimals) + "Kb"
fun File.sizeStrWithMb(decimals: Int = 0): String = sizeStrInMb(decimals) + "Mb"
fun File.sizeStrWithGb(decimals: Int = 0): String = sizeStrInGb(decimals) + "Gb"
String FILE_NAME = "C:\\Ajay\\TEST\\data_996KB.json";
File file = new File(FILE_NAME);
if((file.length()) <= (1048576)) {
System.out.println("file size is less than 1 mb");
}else {
System.out.println("file size is More than 1 mb");
}
Hinweis: 1048576 = (1024 * 1024) = 1 MB Ausgabe: Die Dateigröße beträgt weniger als 1 MB
Antworten:
Verwenden Sie die
length()
Methode derFile
Klasse, um die Größe der Datei in Bytes zurückzugeben.// Get file from file name File file = new File("U:\intranet_root\intranet\R1112B2.zip"); // Get length of file in bytes long fileSizeInBytes = file.length(); // Convert the bytes to Kilobytes (1 KB = 1024 Bytes) long fileSizeInKB = fileSizeInBytes / 1024; // Convert the KB to MegaBytes (1 MB = 1024 KBytes) long fileSizeInMB = fileSizeInKB / 1024; if (fileSizeInMB > 27) { ... }
Sie könnten die Konvertierung in einem Schritt kombinieren, aber ich habe versucht, den Prozess vollständig zu veranschaulichen.
quelle
Versuchen Sie folgenden Code:
File file = new File("infilename"); // Get the number of bytes in the file long sizeInBytes = file.length(); //transform in MB long sizeInMb = sizeInBytes / (1024 * 1024);
quelle
Beispiel:
public static String getStringSizeLengthFile(long size) { DecimalFormat df = new DecimalFormat("0.00"); float sizeKb = 1024.0f; float sizeMb = sizeKb * sizeKb; float sizeGb = sizeMb * sizeKb; float sizeTerra = sizeGb * sizeKb; if(size < sizeMb) return df.format(size / sizeKb)+ " Kb"; else if(size < sizeGb) return df.format(size / sizeMb) + " Mb"; else if(size < sizeTerra) return df.format(size / sizeGb) + " Gb"; return ""; }
quelle
Am einfachsten ist es, FileUtils von Apache commons-io zu verwenden ( https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FileUtils.html) )
Gibt die lesbare Dateigröße von Bytes bis Exabytes zurück und rundet sie bis zur Grenze ab.
File fileObj = new File(filePathString); String fileSizeReadable = FileUtils.byteCountToDisplaySize(fileObj.length()); // output will be like 56 MB
quelle
file.length () gibt Ihnen die Länge in Bytes zurück, dann teilen Sie diese durch 1048576 und jetzt haben Sie Megabyte!
quelle
Sie können die Länge der Datei mit File # length () abrufen , wodurch ein Wert in Byte zurückgegeben wird. Sie müssen diesen also durch 1024 * 1024 teilen, um den Wert in MB zu erhalten.
quelle
Seit Java 7 können Sie verwenden
java.nio.file.Files.size(Path p)
.Path path = Paths.get("C:\\1.txt"); long expectedSizeInMB = 27; long expectedSizeInBytes = 1024 * 1024 * expectedSizeInMB; long sizeInBytes = -1; try { sizeInBytes = Files.size(path); } catch (IOException e) { System.err.println("Cannot get the size - " + e); return; } if (sizeInBytes > expectedSizeInBytes) { System.out.println("Bigger than " + expectedSizeInMB + " MB"); } else { System.out.println("Not bigger than " + expectedSizeInMB + " MB"); }
quelle
public static long sizeOf(File file)
Weitere Informationen zur API: http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html
quelle
Sie können Teilzeichenfolgen verwenden, um ein Portio von String zu erhalten, das 1 MB entspricht:
public static void main(String[] args) { // Get length of String in bytes String string = "long string"; long sizeInBytes = string.getBytes().length; int oneMb=1024*1024; if (sizeInBytes>oneMb) { String string1Mb=string.substring(0, oneMb); } }
quelle
Sie können
FileChannel
in verwendenJava
.FileChannel verfügt über die size () -Methode, um die Größe der Datei zu bestimmen.
String fileName = "D://words.txt"; Path filePath = Paths.get(fileName); FileChannel fileChannel = FileChannel.open(filePath); long fileSize = fileChannel.size(); System.out.format("The size of the file: %d bytes", fileSize);
Sie können die Dateigröße auch mit der
Apache Commons
Methode 'FileUtils' sizeOf () bestimmen . Wenn Sie maven verwenden, fügen Sie dies derpom.xml
Datei hinzu.<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency>
Versuchen Sie die folgende Codierung:
String fileName = "D://words.txt"; File f = new File(fileName); long fileSize = FileUtils.sizeOf(f); System.out.format("The size of the file: %d bytes", fileSize);
Diese Methoden geben die Größe in Bytes aus. Um die MB-Größe zu erhalten, müssen Sie die Dateigröße von (1024 * 1024) teilen.
Jetzt können Sie einfach die
if-else
Bedingungen verwenden, da die Größe in MB erfasst wird.quelle
Kotlin-Erweiterungslösung
Fügen Sie diese irgendwo hinzu und rufen
if (myFile.sizeInMb > 27.0)
Sie dann an oder je nachdem, was Sie brauchen:val File.size get() = if (!exists()) 0.0 else length().toDouble() val File.sizeInKb get() = size / 1024 val File.sizeInMb get() = sizeInKb / 1024 val File.sizeInGb get() = sizeInMb / 1024 val File.sizeInTb get() = sizeInGb / 1024
Wenn Sie die Arbeit mit einem String oder Uri vereinfachen möchten, fügen Sie Folgendes hinzu:
fun Uri.asFile(): File = File(toString()) fun String?.asUri(): Uri? { try { return Uri.parse(this) } catch (e: Exception) { } return null }
Wenn Sie die Werte einfach als Zeichenfolge anzeigen möchten, sind dies einfache Wrapper. Sie können die angezeigten Standard-Dezimalstellen jederzeit anpassen
fun File.sizeStr(): String = size.toString() fun File.sizeStrInKb(decimals: Int = 0): String = "%.${decimals}f".format(sizeInKb) fun File.sizeStrInMb(decimals: Int = 0): String = "%.${decimals}f".format(sizeInMb) fun File.sizeStrInGb(decimals: Int = 0): String = "%.${decimals}f".format(sizeInGb) fun File.sizeStrWithBytes(): String = sizeStr() + "b" fun File.sizeStrWithKb(decimals: Int = 0): String = sizeStrInKb(decimals) + "Kb" fun File.sizeStrWithMb(decimals: Int = 0): String = sizeStrInMb(decimals) + "Mb" fun File.sizeStrWithGb(decimals: Int = 0): String = sizeStrInGb(decimals) + "Gb"
quelle
String FILE_NAME = "C:\\Ajay\\TEST\\data_996KB.json"; File file = new File(FILE_NAME); if((file.length()) <= (1048576)) { System.out.println("file size is less than 1 mb"); }else { System.out.println("file size is More than 1 mb"); }
Hinweis: 1048576 = (1024 * 1024) = 1 MB Ausgabe: Die Dateigröße beträgt weniger als 1 MB
quelle