diff options
author | Peter Wu <peter@lekensteyn.nl> | 2014-05-03 00:14:18 +0200 |
---|---|---|
committer | Peter Wu <peter@lekensteyn.nl> | 2014-05-03 00:14:18 +0200 |
commit | 94115ee02948e4b70220025298c812ffb2eee23b (patch) | |
tree | d76300f0e00a4e9325073161d2a8b2d209876330 | |
parent | 651d400a4f7cca02fe07d06b2d6b6bcc1de09bd9 (diff) | |
download | TwitterDataAnalytics-94115ee02948e4b70220025298c812ffb2eee23b.tar.gz |
Display stats when converting an uncompressed file
-rw-r--r-- | src/io/CompressableDataWriter.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/io/CompressableDataWriter.java b/src/io/CompressableDataWriter.java index a3b069f..d81d80b 100644 --- a/src/io/CompressableDataWriter.java +++ b/src/io/CompressableDataWriter.java @@ -106,6 +106,7 @@ public class CompressableDataWriter extends DataWriter { OutputStream gzOs = null; try { File origFile = new File(getFileName()); + long origSize = origFile.length(); fis = new FileInputStream(origFile); newTmpFile = File.createTempFile(getFileName(), "origFile", origFile.getParentFile()); @@ -115,12 +116,15 @@ public class CompressableDataWriter extends DataWriter { IOUtils.copy(fis, gzOs); gzOs.close(); fis.close(); + long newSize = newTmpFile.length(); // compression ready! Don't delete the result! Files.move(newTmpFile.toPath(), origFile.toPath(), StandardCopyOption.REPLACE_EXISTING); newTmpFile = null; compressable = true; + // show some compression stats + printStats(origSize, newSize); } catch (IOException ex) { // failed to convert (disk space too low? Not compressed?) getLogger().log(Level.INFO, getFileName() + ": Unable to " @@ -134,6 +138,20 @@ public class CompressableDataWriter extends DataWriter { } } + private void printStats(long origSize, long newSize) { + String msg = "Succesfully converted " + getFileName() + ". "; + msg += "Uncompressed size: " + origSize + "; " + + "compressed size: " + newSize + "."; + if (newSize > 0 && origSize > 0) { + long bytesSaved = origSize - newSize; + long perc = 100 * -bytesSaved / origSize; + if (bytesSaved > 0) { + msg += " Saved " + bytesSaved + " bytes (" + perc + "%). "; + } + } + getLogger().info(msg); + } + private Logger getLogger() { return Logger.getLogger(this.getClass().getName()); } |