using System; using System.IO; using System.Text; namespace ReadFileInChunks { class Program { static void Main(string[] args) { int lineNumber = 0; long beginBytes = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64; Console.WriteLine($"Bytes: {beginBytes}"); Console.WriteLine(""); Console.ReadKey(); long beginMemory = GC.GetTotalMemory(true); Console.WriteLine($"Memory: {beginMemory}"); Console.WriteLine(""); Console.ReadKey(); //string wholeFile = File.ReadAllText("test.txt"); //Console.WriteLine(""); //Console.WriteLine("******************"); //Console.WriteLine("* ReadAllText *"); //Console.WriteLine("******************"); //Console.WriteLine(""); //beginBytes = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64; //Console.WriteLine($"Bytes: {beginBytes}"); //Console.WriteLine(""); //Console.ReadKey(); //beginMemory = GC.GetTotalMemory(true); //Console.WriteLine($"Memory: {beginMemory}"); //Console.WriteLine(""); //Console.ReadKey(); using (FileStream fileStream = new FileStream("test.txt", FileMode.Open, FileAccess.Read)) { int count = 10000; byte[] buffer = new byte[count]; int read = 1; while (read > 0) { read = fileStream.Read(buffer, 0, count); string partOfFile = Encoding.UTF8.GetString(buffer, 0, read); using (MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(partOfFile))) { using (StreamReader streamReader = new StreamReader(memoryStream, Encoding.UTF8, true)) { while (!streamReader.EndOfStream) { Console.WriteLine($"{lineNumber++}: {streamReader.ReadLine()}"); } } } Console.WriteLine(""); Console.WriteLine("******************"); Console.WriteLine("* Next block *"); Console.WriteLine("******************"); Console.WriteLine(""); long bytes = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64; Console.WriteLine($"Bytes at the beginning: {beginBytes}, current bytes: {bytes}"); Console.WriteLine(""); Console.ReadKey(); long memory = GC.GetTotalMemory(true); Console.WriteLine($"Memory at the beginning: {beginMemory}, current memory: {memory}"); Console.WriteLine(""); Console.ReadKey(); } } Console.WriteLine("Press any key"); Console.ReadKey(); } } }
Read file in chunks
- Details
- Written by: Stanko Milosev
- Category: C#
- Hits: 3695
My example on how to read file in chunks: