Reading compressed textfile on-the-fly
Reading .gz textfile line after line
Section titled “Reading .gz textfile line after line”This class open a .gz file (usual format of compressed log files) and will return a line at each call of .NextLine()
There is no memory usage for temporary decompression, very useful for large file.
Imports System.IO
Class logread_gz
Private ptr As FileStream Private UnGZPtr As Compression.GZipStream Private line_ptr As StreamReader Private spath As String
Sub New(full_filename As String) spath = full_filename End Sub
Sub Open() Me.ptr = File.OpenRead(spath) Me.UnGZPtr = New Compression.GZipStream(ptr, Compression.CompressionMode.Decompress) Me.line_ptr = New StreamReader(UnGZPtr) End Sub()
Function NextLine() As String 'will return Nothing if EOF Return Me.line_ptr.ReadLine() End Function
Sub Close() Me.line_ptr.Close() Me.line_ptr.Dispose() Me.UnGZPtr.Close() Me.UnGZPtr.Dispose() Me.ptr.Close() Me.ptr.Dispose() End Sub
End ClassNote : there is no failsafe, for readbility purpose.