harin04
harin04

Reputation: 281

Writing into multiple text files at a time

I have the data that needs too be logged into 6 different text files.Currently i'm using streamwriter to write the data into the textfiles one after the other. Like this

using (StreamWriter _writer = File.AppendText(_filePath))
{                                   
    _writer.WriteLine("....Some Text ...");               
}

But this takes considerable amount of time.Is there a way to write into all the text files at the same time ?

Upvotes: 2

Views: 3714

Answers (1)

Hossain Muctadir
Hossain Muctadir

Reputation: 3626

You can use a list of stream writers and use Parallel.Foreach over them to write to multiple files concurrently.

var streamWriters = new List<StreamWriter>();
streamWriters.Add(new StreamWriter("1.txt"));
streamWriters.Add(new StreamWriter("2.txt"));
streamWriters.Add(new StreamWriter("3.txt"));
streamWriters.Add(new StreamWriter("4.txt"));
streamWriters.Add(new StreamWriter("5.txt"));
streamWriters.Add(new StreamWriter("6.txt"));

Parallel.ForEach(streamWriters, s => { s.Write("some text"); s.Dispose(); });

This may improve some of your performance.

Upvotes: 3

Related Questions