.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

  • Live Event Date: April 29, 2014 @ 2:00 p.m. ET / 11:00 a.m. PT Leveraging Flash storage to accelerate an Oracle Real Application Clusters (RAC) environment is one of today's hottest technology topics. Oracle databases require guaranteed levels of storage performance and high availability of data. Until recently, Oracle RAC could only use Flash storage for SmartFlash Cache, which addresses some performance improvements, but limits the benefits that can be gained from a shared Flash infrastructure. Enter …

  • Live Event Date: May 6, 2014 @ 1:00 p.m. ET / 10:00 a.m. PT While you likely have very good reasons for remaining on WinXP after end of support -- an estimated 20-30% of worldwide devices still are -- the bottom line is your security risk is now significant. In the absence of security patches, attackers will certainly turn their attention to this new opportunity. Join Lumension Vice President Paul Zimski in this one-hour webcast to discuss risk and, more importantly, 5 pragmatic risk mitigation techniques …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds