Use the StreamWriter class to write a text file using C#
A simple example of how to use the StreamWriter class to write a text file using C#.
Code:
using System;
using System.IO;
using System.Threading;
namespace ConsoleApplications
{
class StreamWriterDemo
{
private static string pathFile = "log.txt";
static void Main(string[] args)
{
string logTimestamp = DateTime.Now.ToString();
string logEvent = "Some events that occurred in the system...";
WriteLog(logTimestamp, logEvent);
Console.WriteLine("An event has been posted to the log file");
Console.WriteLine("We look forward to the next event ....");
Thread.Sleep(5000);
logTimestamp = DateTime.Now.ToString();
WriteLog(logTimestamp, logEvent);
Console.WriteLine("An event has been posted to the log file");
Console.WriteLine("We look forward to the next event ....");
Thread.Sleep(10000);
logTimestamp = DateTime.Now.ToString();
WriteLog(logTimestamp, logEvent);
Console.WriteLine("An event has been posted to the log file");
Console.WriteLine("We look forward to the next event ....");
Thread.Sleep(3000);
logTimestamp = DateTime.Now.ToString();
WriteLog(logTimestamp, logEvent);
Console.WriteLine("An event has been posted to the log file");
}
/// <summary>
/// Adds a new line to the log file, adding logTimestamp and logEvent
/// </summary>
/// <param name="logTimestamp"></param>
/// <param name="logEvent"></param>
/// <returns></returns>
private static bool WriteLog(string logTimestamp, string logEvent)
{
bool result = true;
FileStream fs = null;
StreamWriter sw = null;
try
{
fs = File.Open(pathFile, FileMode.Append, FileAccess.Write);
sw = new StreamWriter(fs);
sw.Write(logTimestamp + Environment.NewLine + logEvent + Environment.NewLine);
result = true;
sw.Close();
fs.Close();
}
catch (Exception excp)
{
result = false;
sw.Close();
fs.Close();
Console.WriteLine("Error:" + excp.ToString());
}
finally
{
result = false;
sw.Close();
fs.Close();
}
return result;
}
}
}
Note: This example is also used Thread.Sleep(x); to pause for x milliseconds running the program.