如何获得MB的文件大小?

我在服务器上有一个文件,它是一个zip文件。 如何检查文件大小是否大于27 MB?

File file = new File("U:\intranet_root\intranet\R1112B2.zip"); if (file > 27) { //do something } 

使用File类的length()方法以字节为单位返回File的大小。

 // 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) { ... } 

您可以将转换合并为一个步骤,但我试图完全说明该过程。

尝试下面的代码:

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

例如:

 public static String getStringSizeLengthFile(long size) { DecimalFormat df = new DecimalFormat("0.00"); float sizeKb = 1024.0f; float sizeMo = sizeKb * sizeKb; float sizeGo = sizeMo * sizeKb; float sizeTerra = sizeGo * sizeKb; if(size < sizeMo) return df.format(size / sizeKb)+ " Kb"; else if(size < sizeGo) return df.format(size / sizeMo) + " Mo"; else if(size < sizeTerra) return df.format(size / sizeGo) + " Go"; return ""; } 

file.length()将以字节为单位返回你的长度,然后你除以1048576 ,现在你有兆字节!

最简单的方法是使用Apache commons-io中的FileUtils( https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FileUtils.html

从字节到百兆字节返回人类可读的文件大小,向下舍入到边界。

 File fileObj = new File(filePathString); String fileSizeReadable = FileUtils.byteCountToDisplaySize(fileObj.length()); // output will be like 56 MB 

你可以用File#length()检索文件的长度 ,这将返回一个以字节为单位的值,所以你需要用1024 * 1024除以得到它的值。

从Java 7开始,您可以使用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"); } 
 public static long sizeOf(File file) 

更多关于API的信息: http : //commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html

您可以使用substring来获得等于1 MB的String的portio:

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