using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Compression;
using System.IO;
namespace StreamTesting
{
class Program
{
static void Main(string[] args)
{
string inputFile= "c:/u.log.gz";
Console.WriteLine("Enter File Path");
// inputFile=Console.ReadLine();
FileInfo file = new FileInfo(inputFile);
if (file.Exists)
{
Decompress(file);
}
}
public static void Decompress(FileInfo file)
{
using (FileStream fs = new FileStream(file.FullName, FileMode.Open, FileAccess.Read))
{
if (file.Extension == ".gz")
{
Display(new GZipStream(fs, CompressionMode.Decompress, false));
}
else
Display(fs);
}
}
static void Display(Stream stream)
{
Console.WriteLine("Enter No. of lines wanted to Display");
try
{
int n = Int32.Parse(Console.ReadLine());
int count = -4;
foreach (string line in ReadFile(stream))
{
if (!line.Contains("#") || count < 0)
{
Console.WriteLine(line);
Console.ReadKey();
count++;
}
if (count == n)
break;
}
}
catch (Exception e)
{
Console.WriteLine("Enter numbers");
}
}
static IEnumerable
{
using (StreamReader reader = new StreamReader(stream))
{
string line=null;
while ((line = reader.ReadLine()) != null)
{
yield return line;
}
}
}
}
}
In this program I am using Gzip stream to printout line by line of the file. Here I learned how to use stream.

No comments:
Post a Comment