illustrates reading and writing binary data


   

/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy

Publisher: Sybex;
ISBN: 0782129110
*/


 /*
  Example15_15.cs illustrates reading and writing binary data
*/

using System;
using System.IO;

public class Example15_15 
{

  public static void Main() 
  {

    // create a new file to work with
    FileStream outStream = File.Create("c:BinaryTest.dat");

    // use a BinaryWriter to write formatted data to the file
    BinaryWriter bw = new BinaryWriter(outStream);

    // write various data to the file
    bw.Write( (int) 32);
    bw.Write( (decimal) 4.567);
    string s = "Test String";
    bw.Write(s);

    // flush and close
    bw.Flush();
    bw.Close();

    // now open the file for reading
    FileStream inStream = File.OpenRead("c:BinaryTest.dat");

    // use a BinaryReader to read formatted data and dump it to the screen
    BinaryReader br = new BinaryReader(inStream);

    int i = br.ReadInt32();
    decimal d = br.ReadDecimal();
    string s2 = br.ReadString();

    Console.WriteLine(i);
    Console.WriteLine(d);
    Console.WriteLine(s2);

    // clean up
    br.Close();

  }

}


           
          


Create StreamReader from File Stream

   


using System;
using System.IO;

public class IOExample
{
  static void Main() {   
    FileStream fs;
    StreamReader srIn;

    try {
      fs = new FileStream("practice.txt", FileMode.Open );
      srIn = new StreamReader(fs);

      string line = srIn.ReadLine();

      Console.WriteLine("line = "+line);
      srIn.Close();
    } catch (IOException ioe) {
      Console.WriteLine("IOException occurred: "+ioe.Message);
    }
  }
}

           
          


Reads lines separated by vertical bars


   

using System;
using System.IO;

public class FileReadAddresses {
  public static void Main( ) {
    String line;
    String street, city, state, zip;
    StreamReader f = new StreamReader("test.data");
    while ((line=f.ReadLine())!= null){
      String[] strings = line.Split(new char[]{'|'});
      if (strings.Length == 4) {
        street = strings[0];
        city = strings[1];
        state = strings[2];
        zip = strings[3];
        Console.WriteLine(street); 
        Console.WriteLine(city);
        Console.WriteLine(state);
        Console.WriteLine(zip);
      }
    }
    f.Close();
  }
}    

//File: test.data
/*
4665 Street|Toronto|ON|90048
*/

           
          


FileStream with FileMode.Create and FileMode.Open

   

using System;
using System.IO;
using System.Text;

class MainClass {
    static void Main() {
        using (FileStream fs = new FileStream("test.txt", FileMode.Create)) {
            using (StreamWriter w = new StreamWriter(fs, Encoding.UTF8)) {
                w.WriteLine(124.23M);
                w.WriteLine("Test string");
                w.WriteLine('!');
            }
        }
        Console.WriteLine("Press Enter to read the information.");
        Console.ReadLine();
        // Open the file in read-only mode.
        using (FileStream fs = new FileStream("test.txt", FileMode.Open)) {
            using (StreamReader r = new StreamReader(fs, Encoding.UTF8)) {
                // Read the data and convert it to the appropriate data type.
                Console.WriteLine(Decimal.Parse(r.ReadLine()));
                Console.WriteLine(r.ReadLine());
                Console.WriteLine(Char.Parse(r.ReadLine()));
            }
        }
    }
}
           
          


Set File IO Permission to c:

   


using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Permissions;


class Program {
    static void Main(string[] args) {
        MyClass.Method();
    }
}

[FileIOPermission(SecurityAction.Assert, Read = "C:/")]
class MyClass {
    public static void Method() {
        // implementation goes here
    }
}

           
          


Create a file stream with new FileStream(“test.bin”, FileMode.Create)

   
 

using System;
using System.IO;

class MainClass {
    static void Main() {
        using (FileStream fs = new FileStream("test.bin", FileMode.Create)) {
            using (BinaryWriter w = new BinaryWriter(fs)) {
                w.Write(124.23M);
                w.Write("Tstring");
                w.Write("Tstring 2");
                w.Write('!');
            }
        }
        Console.WriteLine("Press Enter to read the information.");
        Console.ReadLine();

        using (FileStream fs = new FileStream("test.bin", FileMode.Open)) {
            using (StreamReader sr = new StreamReader(fs)) {
                Console.WriteLine(sr.ReadToEnd());
                Console.WriteLine();

                fs.Position = 0;
                using (BinaryReader br = new BinaryReader(fs)) {
                    Console.WriteLine(br.ReadDecimal());
                    Console.WriteLine(br.ReadString());
                    Console.WriteLine(br.ReadString());
                    Console.WriteLine(br.ReadChar());
                }
            }
        }
    }
}