“文件”类对象大小?

sv2*_*311 -2 java spring file

我想知道一个File类的对象是否将整个文件加载到主内存中。我想到了用2个文件,一大一小做文件类的对象,然后比较这两个对象的大小。但显然,没有直接的方法来确定Java.

fiv*_*nts 5

Fileobject 只是一个引用文件路径的普通对象。引用的文件可能实际存在于文件系统中,也可能不存在。File 对象不保存文件的内容。

当您使用InputStream(eg FileInputStream) 或Reader(eg FileReader) 与 Buffer (eg BufferedReader)结合读取文件时,您开始读取实际文件内容。现在,由您决定是要将整个文件内容数据保留在内存中还是逐块处理并丢弃它。因此,是否将完整文件内容加载到内存中取决于您的应用程序。

为了预先知道文件大小(以字节为单位),您可以执行以下操作: file.length()

为了知道读取后的文件内容大小,在将文件存储内容读入byte array( byte[]) 并使用mybytes.length.

更新

您在评论中提到要找出File对象的大小。File对象只是另一个常见的对象。不过,如果您想测量尺寸,请使用java.lang.instrument.Instrumentation#getObjectSize()

请参阅本文如何使用 Java Instrumentation API以了解如何使用java.lang.instrument类确定对象大小。