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: 4116
My example on how to read file in chunks: