.NET Tip: Return File Contents as a String

The applications I've been working on lately send a lot of email notifications out as the status of the application and monitored devices change. There are a handful of different email messages that could be sent. I wanted a means to store the bodies of these emails in a manner that would be easy to update without me having to be involved. I considered storing them in the database, but that would not be very easy for the person responsible for maintaining the body of the email. Instead, I chose to store the body of each email in a file. For my application, this had the right balance of flexibility and ease of use. When I found myself starting to write the code to read in the body of an email more than, once I created a method that would read in the entire file and return it as a string. I then can easily process the body text if needed and send it out in an email. Here is the code to read a file:

public static string GetFileContents(string FileName)
{
   StreamReader sr = null;
   string FileContents = null;

   try
   {
      FileStream fs = new FileStream(FileName, FileMode.Open,
                                     FileAccess.Read);
      sr = new StreamReader(fs);
      FileContents = sr.ReadToEnd();
   }
   finally
   {
      if(sr != null)
         sr.Close();
   }

   return FileContents;
}

This should be fairly strightforward to follow. First, a FileStream is created to control access to the file. Next, a StreamReader is created and associated with the FileStream. The ReadToEnd() method is then called to retrieve the entire contents of the file and store it in a local string variable. If the StreamReader was able to open the file successfully, it is closed and finally, the local string holding the contents of the file is returned from the method.

I added this simple method as a static method in my utility class. Now, I have easy access to reading the contents of a file from anywhere in my applications.

About the Author

Jay Miller is a Software Engineer with Electronic Tracking Systems, a company dedicated to robbery prevention, apprehension, and recovery based in Carrollton, Texas. Jay has been working with .NET since the release of the first beta and is co-author of Learn Microsoft Visual Basic.Net In a Weekend. Jay can be reached via email at jmiller@sm-ets.com.



Comments

  • Easier Alternative

    Posted by jmcilhinney on 02/13/2008 02:12am

    Such a method already exists. It's called System.IO.File.ReadAllText.

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • If you need new tools and tricks to make your meetings profitable and productive, then 5 Tips in 5 Minutes: A Quick Guide for More Profitable Sales Meetings is for you. Timely, practical tips that you can incorporate in just seconds will save you literally hours in travel and meeting time, not to mention help you to focus on what your sales prospects really want to know and how you can meet their needs. Get 5in5: A Quick Guide for More Profitable Sales Meetings and start building your sales the smarter, faster …

  • Event Date: April 15, 2014 The ability to effectively set sales goals, assign quotas and territories, bring new people on board and quickly make adjustments to the sales force is often crucial to success--and to the field experience! But for sales operations leaders, managing the administrative processes, systems, data and various departments to get it all right can often be difficult, inefficient and manually intensive. Register for this webinar and learn how you can: Align sales goals, quotas and …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds