How to: Read and Write to Files in Isolated Storage

There are a number of ways to open a file within a store using the IsolatedStorageFileStream class. Once an IsolatedStorageFileStream has been obtained, it can be used to get a StreamReader or StreamWriter. With the StreamReader and StreamWriter, you can read and write to a file in a store as you would to any other file. For a wider discussion of reading and writing to a file, see File and Stream I/O.

ReadingAndWritingToFiles Example

The following code example obtains an isolated store, creates a file named TestStore.txt, and writes "Hello Isolated Storage" to the file. The code then reads the file and prints the results to the console.

Imports System
Imports System.IO
Imports System.IO.IsolatedStorage

Public Module modmain

   Sub Main()

      ' Get an isolated store for this assembly and put it into an
      ' IsolatedStoreFIle object.

      Dim isoStore As IsolatedStorageFile
      isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or IsolatedStorageScope.Assembly, Nothing, Nothing)

      ' This code checks to see if the file already exists.

      Dim filenames As String()
      filenames = isoStore.GetFileNames("TestStore.txt")

      Dim file As String
      For Each file In filenames
         If file = "TestStore.txt" Then
            Console.WriteLine("The file already exists!")
            Console.WriteLine("Type ""StoreAdm /REMOVE"" at the command line to delete all Isolated Storage for this user.")
            Exit Sub

         End If
      Next

      WriteToFile(isoStore)

      Console.WriteLine("The file ""TestStore.txt"" contains:")

      ' Call readFromFile and write the returned string to the console.

      Console.WriteLine(ReadFromFile(isoStore))

   End Sub

   ' This method writes "Hello Isolated Storage" to the file.

   Private Sub WriteToFile(ByVal isoStore As IsolatedStorageFile)
      ' Declare a new StreamWriter.
      Dim writer As New StreamWriter(New IsolatedStorageFileStream("TestStore.txt", FileMode.CreateNew, isoStore))

      ' Have the writer write "Hello Isolated Storage" to the store.

      writer.WriteLine("Hello Isolated Storage")

      writer.Close()

      Console.WriteLine("You have written to the file.")
   End Sub

   ' This method reads the first line in the "TestStore.txt" file.

   Private Function ReadFromFile(ByVal isoStore As IsolatedStorageFile) As String

      ' This code opens the TestStore.txt file and reads the string.

      Dim reader As New StreamReader(New IsolatedStorageFileStream("TestStore.txt", FileMode.Open, isoStore))

      ' Read a line from the file and add it to sb.

      Dim sb As String
      sb = reader.ReadLine

      ' Close the reader.

      reader.Close()

      Return sb
   End Function

End Module
using System;
using System.IO;
using System.IO.IsolatedStorage;

public class ReadingAndWritingToFiles{

   public static int Main(){

      // Get an isolated store for this assembly and put it into an
      // IsolatedStoreFile object.

      IsolatedStorageFile isoStore =  IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);

      // This code checks to see if the file already exists.

      string[] fileNames = isoStore.GetFileNames("TestStore.txt");
      foreach (string file in fileNames){
         if(file == "TestStore.txt"){

            Console.WriteLine("The file already exists!");
            Console.WriteLine("Type \"StoreAdm /REMOVE\" at the command line to delete all Isolated Storage for this user.");

            // Exit the program.

            return 0;
         }
      }

      writeToFile(isoStore);

      Console.WriteLine("The file \"TestStore.txt\" contains:");
      // Call the readFromFile and write the returned string to the
      //console.

      Console.WriteLine(readFromFile(isoStore));

      // Exit the program.

      return 0;

   }// End of main.


   // This method writes "Hello Isolated Storage" to the file.

   private static void writeToFile(IsolatedStorageFile isoStore){

      // Declare a new StreamWriter.

      StreamWriter writer = null;

      // Assign the writer to the store and the file TestStore.

      writer = new StreamWriter(new IsolatedStorageFileStream("TestStore.txt", FileMode.CreateNew,isoStore));

      // Have the writer write "Hello Isolated Storage" to the store.

      writer.WriteLine("Hello Isolated Storage");

      writer.Close();
      
      Console.WriteLine("You have written to the file.");

   }// End of writeToFile.


   // This method reads the first line in the "TestStore.txt" file.

   public static String readFromFile(IsolatedStorageFile isoStore){

      // This code opens the TestStore.txt file and reads the string.

      StreamReader reader = new StreamReader(new IsolatedStorageFileStream("TestStore.txt", FileMode.Open,isoStore));

      // Read a line from the file and add it to sb.

      String sb = reader.ReadLine();

      // Close the reader.

      reader.Close();

      // Return the string.

      return sb.ToString();

   }// End of readFromFile.
}

See Also

Reference

IsolatedStorageFile

IsolatedStorageFileStream

System.IO.FileMode

System.IO.FileAccess

System.IO.StreamReader

System.IO.StreamWriter

Other Resources

Performing Isolated Storage Tasks