【问题标题】:Java - Getting The Size of an Object [duplicate]Java - 获取对象的大小
【发布时间】:2013-12-08 20:27:49
【问题描述】:

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

现在我正在查看 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 抛出。

【问题讨论】:

标签: java


【解决方案1】:

您需要使用file.length()

您当前试图获得的是file 对象在 RAM 中占用的空间,这不是您想要的。

【讨论】:

    【解决方案2】:

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

    试试这个:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-01
      • 2011-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      相关资源
      最近更新 更多