summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2014-05-03 00:14:18 +0200
committerPeter Wu <peter@lekensteyn.nl>2014-05-03 00:14:18 +0200
commit94115ee02948e4b70220025298c812ffb2eee23b (patch)
treed76300f0e00a4e9325073161d2a8b2d209876330
parent651d400a4f7cca02fe07d06b2d6b6bcc1de09bd9 (diff)
downloadTwitterDataAnalytics-94115ee02948e4b70220025298c812ffb2eee23b.tar.gz
Display stats when converting an uncompressed file
-rw-r--r--src/io/CompressableDataWriter.java18
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());
}