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