Java 如何在CQ5的while循环中计算所有图像的总字节数

Java 如何在CQ5的while循环中计算所有图像的总字节数,java,aem,Java,Aem,您好,我在Adobe Experience manager(AEM)CQ5上工作。现在,我的任务是计算存储库中未使用的dam图像的大小。迭代时,我得到每个文件的字节大小,但我无法在循环中一次计算所有图像的字节。下面是代码示例 while (iterator.hasNext()) { Node node = session.getNode(iterator.nextNode().getPaath()); Resource res = resourceResolver = resou

您好,我在Adobe Experience manager(AEM)CQ5上工作。现在,我的任务是计算存储库中未使用的dam图像的大小。迭代时,我得到每个文件的字节大小,但我无法在循环中一次计算所有图像的字节。下面是代码示例

while (iterator.hasNext()) {
    Node node = session.getNode(iterator.nextNode().getPaath());
    Resource res = resourceResolver = resourceResolver.getResource(node.getPath());
    byte[] result = null;
    try {
        Node ntFileNode = getSession().getNode("Path");
        Node ntResourceNode = ntFileNode.getNode("jcr:content");
        InputStream is = ntResourceNode.getProperty("jcr:data").getBinary().getStream();
        BufferedInputStream bin = new BufferedInputStream(is);
        result = IOUtils.toByteArray(bin);
        bin.close();
        is.close();
        System.out.print("Bytes of Images " + result); // here I am getting bytes of images but in individual. I want to get the total count of bytes of all images.
    }  // while loop ends
有人能建议我在哪里对上述代码进行更改吗?

试试下面的方法。。 您可以重构下面的代码。。但我只关注总字节数:

int totalBytes = 0;
while(iterator.hasNext()){
   Node node = session.getNode(iterator.nextNode().getPaath());
   Resource res = resourceResolver = resourceResolver.getResource(node.getPath());
   byte[] result = null;
   try { 
      Node ntFileNode = getSession().getNode("Path"); 
      Node ntResourceNode = ntFileNode.getNode("jcr:content");
      InputStream is = ntResourceNode.getProperty("jcr:data").getBinary().getStream();
      BufferedInputStream bin = new BufferedInputStream(is);
      result = IOUtils.toByteArray(bin);

      totalBytes = totalBytes + result;

      bin.close();
      is.close(); 
      System.out.print("Bytes of Image "+ result ); // here I am getting bytes of images but in individual. I want to get the totoal count of bytes of all images.

      result=null; //optional - just to be sure.
  }  // while loop ends

  System.out.print("Total bytes of all images= "+ totalBytes);