summaryrefslogtreecommitdiffstats
path: root/src/test/SumUpClasses.java
diff options
context:
space:
mode:
authorStiver <stiver.mail@gmail.com>2014-03-04 15:13:11 +0100
committerStiver <stiver.mail@gmail.com>2014-03-04 15:13:11 +0100
commite2d0f5d9c38561d67f23754c00addb4a3547efb2 (patch)
tree1832f16037c086b48266b8566aecc61f45f4e5f1 /src/test/SumUpClasses.java
downloadfernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.tar
fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.tar.gz
fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.tar.lz
fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.tar.xz
fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.zip
initial commit
Diffstat (limited to 'src/test/SumUpClasses.java')
-rw-r--r--src/test/SumUpClasses.java81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/test/SumUpClasses.java b/src/test/SumUpClasses.java
new file mode 100644
index 0000000..6d80385
--- /dev/null
+++ b/src/test/SumUpClasses.java
@@ -0,0 +1,81 @@
+package test;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Enumeration;
+import java.util.jar.JarFile;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
+
+public class SumUpClasses {
+
+ public static void main(String[] args) {
+
+ try {
+ File dir = new File("C:\\revjava\\remote\\data\\input\\");
+
+ long[] res = getClasses(dir);
+
+ System.out.println("Count: "+res[0]);
+ System.out.println("Size: "+res[1]/1024/1024);
+
+ } catch(Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ private static long[] getClasses(File file) {
+
+ if(file.isDirectory()) {
+
+ long count = 0, size = 0;
+
+ for(File f : file.listFiles()) {
+ long[] arr = getClasses(f);
+ count+=arr[0];
+ size+=arr[1];
+ }
+
+ return new long[] {count, size};
+
+ } else {
+ String filename = file.getName();
+ if(filename.endsWith(".class")) {
+ return new long[] {1, file.length()};
+ } else if(filename.endsWith(".zip")) {
+ try {
+ return getClassesZip(new ZipFile(file));
+ } catch(IOException ex) {
+ System.out.println("Cannot read file: " + file.getAbsolutePath());
+ }
+ } else if(filename.endsWith(".jar")) {
+ try {
+ return getClassesZip(new JarFile(file));
+ } catch(IOException ex) {
+ System.out.println("Cannot read file: " + file.getAbsolutePath());
+ }
+ }
+ }
+
+ return new long[] {0, 0};
+ }
+
+ private static long[] getClassesZip(ZipFile archive) {
+
+ long count = 0, size = 0;
+
+ Enumeration<? extends ZipEntry> en = archive.entries();
+ while(en.hasMoreElements()) {
+ ZipEntry entr = (ZipEntry)en.nextElement();
+
+ if(!entr.isDirectory() && entr.getName().endsWith(".class")) {
+ count++;
+ size+=entr.getSize();
+ }
+ }
+
+ return new long[] {count, size};
+ }
+
+}