From 98f6e8ff651c427feea5559f6ee7e77f3623991a Mon Sep 17 00:00:00 2001 From: "Matt Johnson (AZURE)" Date: Fri, 14 Jun 2019 12:11:14 -0700 Subject: [PATCH] Compress the data files Completes #36 --- src/GeoTimeZone.DataBuilder/TimeZoneDataBuilder.cs | 11 +++++++---- src/GeoTimeZone/GeoTimeZone.csproj | 2 +- src/GeoTimeZone/TimeZoneLookup.cs | 4 +++- src/GeoTimeZone/TimezoneFileReader.cs | 4 +++- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/GeoTimeZone.DataBuilder/TimeZoneDataBuilder.cs b/src/GeoTimeZone.DataBuilder/TimeZoneDataBuilder.cs index 0b392b6..8316987 100644 --- a/src/GeoTimeZone.DataBuilder/TimeZoneDataBuilder.cs +++ b/src/GeoTimeZone.DataBuilder/TimeZoneDataBuilder.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.IO; +using System.IO.Compression; using System.Linq; using NetTopologySuite.Geometries; @@ -12,8 +13,8 @@ public static class TimeZoneDataBuilder private static readonly Dictionary TimeZones = new Dictionary(); - private const string DataFileName = "TZ.dat"; - private const string LookupFileName = "TZL.dat"; + private const string DataFileName = "TZ.dat.gz"; + private const string LookupFileName = "TZL.dat.gz"; private static void WriteLookup(string outputPath) { @@ -21,7 +22,8 @@ private static void WriteLookup(string outputPath) var path = Path.Combine(outputPath, LookupFileName); using (var fileStream = File.Create(path)) - using (var writer = new StreamWriter(fileStream)) + using (var compressedStream = new GZipStream(fileStream, CompressionMode.Compress)) + using (var writer = new StreamWriter(compressedStream)) { writer.NewLine = "\n"; var timeZones = TimeZones.Values.OrderBy(x => x.LineNumber); @@ -37,7 +39,8 @@ private static void WriteGeohashDataFile(string outputPath) var path = Path.Combine(outputPath, DataFileName); using (var fileStream = File.Create(path)) - using (var writer = new StreamWriter(fileStream)) + using (var compressedStream = new GZipStream(fileStream, CompressionMode.Compress)) + using (var writer = new StreamWriter(compressedStream)) { writer.NewLine = "\n"; WriteTreeNode(writer, WorldBoundsTreeNode); diff --git a/src/GeoTimeZone/GeoTimeZone.csproj b/src/GeoTimeZone/GeoTimeZone.csproj index 6e75c35..e706ef9 100644 --- a/src/GeoTimeZone/GeoTimeZone.csproj +++ b/src/GeoTimeZone/GeoTimeZone.csproj @@ -25,7 +25,7 @@ - + diff --git a/src/GeoTimeZone/TimeZoneLookup.cs b/src/GeoTimeZone/TimeZoneLookup.cs index a3b2183..d6c0ab8 100644 --- a/src/GeoTimeZone/TimeZoneLookup.cs +++ b/src/GeoTimeZone/TimeZoneLookup.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.IO.Compression; using System.Linq; #if NETSTANDARD1_1 @@ -132,7 +133,8 @@ private static IList LoadLookupData() var assembly = typeof(TimeZoneLookup).Assembly; #endif - using (var stream = assembly.GetManifestResourceStream("GeoTimeZone.TZL.dat")) + using (var compressedStream = assembly.GetManifestResourceStream("GeoTimeZone.TZL.dat.gz")) + using (var stream = new GZipStream(compressedStream, CompressionMode.Decompress)) { if (stream == null) throw new InvalidOperationException(); diff --git a/src/GeoTimeZone/TimezoneFileReader.cs b/src/GeoTimeZone/TimezoneFileReader.cs index 641393e..fc9bf35 100644 --- a/src/GeoTimeZone/TimezoneFileReader.cs +++ b/src/GeoTimeZone/TimezoneFileReader.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using System.IO.Compression; using System.Text; #if NETSTANDARD1_1 @@ -27,7 +28,8 @@ private static MemoryStream LoadData() var assembly = typeof(TimezoneFileReader).Assembly; #endif - using (var stream = assembly.GetManifestResourceStream("GeoTimeZone.TZ.dat")) + using (var compressedStream = assembly.GetManifestResourceStream("GeoTimeZone.TZ.dat.gz")) + using (var stream = new GZipStream(compressedStream, CompressionMode.Decompress)) { if (stream == null) throw new InvalidOperationException();