diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2017-03-12 21:09:32 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2017-03-12 21:09:32 -0400 |
commit | 8deda5a91ff3de167e80d805e8856a74d661fb9c (patch) | |
tree | 442a33c93199b89622e5f4dd391d9543f4e78691 | |
parent | e957f1995b2215e86d84b6a63f880854137f565a (diff) |
speed, aggregate
-rw-r--r-- | dslog/Main.java | 57 |
1 files changed, 42 insertions, 15 deletions
diff --git a/dslog/Main.java b/dslog/Main.java index f95be77..40851bc 100644 --- a/dslog/Main.java +++ b/dslog/Main.java @@ -1,38 +1,65 @@ package dslog; -import java.io.File; -import java.io.FileInputStream; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; class Main { public static void dslog2csv(String[] args) throws IOException { for (String filename : args) { System.out.println("Filename: "+filename); - DslogReader file = new DslogReader(new FileInputStream(filename)); + DslogReader file = new DslogReader(Files.newInputStream(Paths.get(filename))); System.out.println("Format Version: "+file.version); System.out.println("Start Time: "+file.startTime); CsvWriter.Dslog2CSV(file, System.out); } } + public static class LogSet { + public DslogReader dslog; + public DseventsReader dsevents; + public PdplogReader pdplog; + } + + private static LogSet getSet(Map<String, LogSet> sets, String name) { + LogSet set; + synchronized (sets) { + set = sets.get(name); + if (set == null) { + set = new LogSet(); + sets.put(name, set); + } + } + return set; + } + public static void main(String[] args) throws IOException { for (String dirname : args) { - for (File file : (new File(dirname)).listFiles()) { + Map<String, LogSet> logsets = new HashMap<String, LogSet>(); + List<Exception> errs = new ArrayList<Exception>(); + Files.list(Paths.get(dirname)).parallel().forEach(filepath->{ try { - if (file.getName().endsWith(".dslog")) { - DslogReader dslog = new DslogReader(new FileInputStream(file)); - System.out.println(file.getName()+" : "+dslog.version+" : "+dslog.startTime); - } else if (file.getName().endsWith(".dsevents")) { - DseventsReader dsevents = new DseventsReader(new FileInputStream(file)); - System.out.println(file.getName()+" : "+dsevents.version+" : "+dsevents.startTime); - } else if (file.getName().endsWith(".pdplog")) { - PdplogReader pdplog = new PdplogReader(new FileInputStream(file)); - System.out.println(file.getName()+" : "+pdplog.version); + String filename = filepath.getFileName().toString(); + if (filename.endsWith(".dslog")) { + String setname = filename.substring(0, filename.lastIndexOf('.')); + getSet(logsets, setname).dslog = new DslogReader(Files.newInputStream(filepath)); + } else if (filename.endsWith(".dsevents")) { + String setname = filename.substring(0, filename.lastIndexOf('.')); + getSet(logsets, setname).dsevents = new DseventsReader(Files.newInputStream(filepath)); + } else if (filename.endsWith(".pdplog")) { + String setname = filename.substring(0, filename.lastIndexOf('.')); + getSet(logsets, setname).pdplog = new PdplogReader(Files.newInputStream(filepath)); } } catch (Exception e) { - (new IOException("Could not read file: "+file.toString(), e)).printStackTrace(); + synchronized (errs) { + errs.add(new IOException("Could not read file: "+filepath.toString(), e)); + } } - } + }); } } } |