Java - 获取对象的大小

时间:2013-12-08 20:27:50

标签: java

我正在编写一个比较器类,它将一个文件的文件大小与同一目录中的另一个文件进行比较。我无法找到正确的文档来获取文件的文件大小。

现在我正在查看getObjectSize的文档:

http://docs.oracle.com/javase/7/docs/api/java/lang/instrument/Instrumentation.html#getObjectSize(java.lang.Object)

这是我的代码,但它似乎没有用。

public class FileComparator implements Comparator {

    private static Instrumentation instrumentation;

    @Override
    public int compare(Object o1, Object o2) {

        throw new UnsupportedOperationException("Not supported yet.");

    }

    static long getObjectSize(Object objectToSize) {

        return instrumentation.getObjectSize(objectToSize);

    }

}

public class Comparison {

    public static void main(String[] args) {

        File file = new File("src/Dummy1.pdf");

        System.out.println(FileComparator.getObjectSize(file));

    }

}

我抛出了NullPointerException。

2 个答案:

答案 0 :(得分:2)

您需要使用file.length()

您目前想要获得的是file对象在RAM中占用多少空间,您想要的内容。

答案 1 :(得分:1)

我认为你需要初始化instrumentation以摆脱NullPointerException

试试这个:

 public int compare(Object o1, Object o2) {
    instrumentation = o2;
    throw new UnsupportedOperationException("Not supported yet.");

 }

还要使用file.length(),因为您想知道文件对象占用的空间