Home / C Sharp / C# Streams / Archive by category 'C# Streams Examples'

C# Streams Examples

Read data from file using TextReader

TextReader reader = File.OpenText(@"C:\data\file.xml");
 
// Read a line at a time until we reach the end of file
while (reader.Peek( ) != -1) {
  string line = reader.ReadLine( );
  Console.WriteLine(line);
}
reader.Close( );

Get file version using c#

using System;
using System.Diagnostics;
 
 
class MainClass {
    static void Main(string[] args) {
        FileVersionInfo info = FileVersionInfo.GetVersionInfo("c:\\a.txt");
 
 
        Console.WriteLine("File Version: " + info.FileVersion);
    }
}

Example of file system watcher

 
   using System;
   using System.Data;
   using System.Data.SqlClient; 
   using System.Drawing;
   using System.IO;
 
 
   public class Test
   {
       public static void Main(){
 
 
 
          FileSystemWatcher watcher = new FileSystemWatcher();
           Console.WriteLine("Started....");
 
          //watcher.SynchronizingObject = this;
 
         watcher.Path =Path.GetDirectoryName(@"C:\Java_Dev\");
         watcher.Filter = Path.GetFileName(@"c:\a.txt");
         watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.Size;
 
          watcher.Deleted += new System.IO.FileSystemEventHandler(OnDelete);
          watcher.Renamed += new System.IO.RenamedEventHandler(OnRenamed);
          watcher.Changed += new System.IO.FileSystemEventHandler(OnChanged);
          watcher.Created += new System.IO.FileSystemEventHandler(OnCreate);
          watcher.EnableRaisingEvents = true;
 
          Console.ReadLine();
       }
      public static void OnChanged(object source, FileSystemEventArgs e) {
         Console.WriteLine("File: {0} {1}", e.FullPath, e.ChangeType.ToString());
      }
 
 
      public static void OnRenamed(object source, RenamedEventArgs e){
         Console.WriteLine("File renamed from {0} to {1}", e.OldName, e.FullPath);
      }
 
 
      public static void OnDelete(object source, FileSystemEventArgs e)
      {
          Console.WriteLine("File: {0} Deleted", e.FullPath);
      }
      public static void OnCreate(object source, FileSystemEventArgs e)
      {
          Console.WriteLine("File: {0} Created", e.FullPath);
      }
 
 
 
   }

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()));
            }
        }
    }
}

Search for file using csharp

using System;
using System.IO;
public class FileSearch {
    public static void Main() {
        String searchName = "win";
        DirectoryInfo myDir = new DirectoryInfo(@"c:\Program Files");
        SearchDirectories(myDir, searchName);
    }
 
 
    public static void SearchDirectories(DirectoryInfo dir, String target) {
        FileInfo[] files = dir.GetFiles();
        foreach (FileInfo file in files) {
            if (file.Name.IndexOf(target) > -1) {
Console.WriteLine(file.Name);
            }
        }
 
 
        DirectoryInfo[] dirs = dir.GetDirectories();
        foreach (DirectoryInfo subDir in dirs) {
            SearchDirectories(subDir, target);
        }
    }
}

Read binary file using file pointer

using System;
using System.IO;
using System.Text;
 
 
class Class1{
  static void Main(string[] args)  {
         byte[] byData = new byte[100];
         char[] charData = new Char[100];
 
 
         try {
            FileStream aFile = new FileStream("practice.txt",FileMode.Open);
            aFile.Seek(55,SeekOrigin.Begin);
            aFile.Read(byData,0,100);
         }
         catch(IOException e)
         {
            Console.WriteLine("An IO exception has been thrown!");
            Console.WriteLine(e.ToString());
            Console.ReadLine();
            return;
         }
 
 
         Decoder d = Encoding.UTF8.GetDecoder();
         d.GetChars(byData, 0, byData.Length, charData, 0);
 
 
         Console.WriteLine(charData);
         return;
  }
}

Example of file move using MoveTo

 
using System;
using System.IO;
 
 
  class Class1 {
    static void Main(string[] args) {
      string [] cla  = Environment.GetCommandLineArgs();
      if (cla.GetUpperBound(0) == 2)
      {
        FileInfo fi = new FileInfo(cla[1]);
        fi.MoveTo(cla[2]);
        Console.WriteLine("File Created : " + fi.CreationTime.ToString());
        Console.WriteLine("Moved to     : " + cla[2]);
      }
      else
        Console.WriteLine ("Usage: mv <source file> <destination file>");
    }
  }

Get file description using csharp

using System;
using System.Diagnostics;
 
 
class MainClass {
    static void Main(string[] args) {
        FileVersionInfo info = FileVersionInfo.GetVersionInfo("c:\\a.txt");
        Console.WriteLine("File Description: " + info.FileDescription);
    }
}

Check if a file exists, open and read the file

 
/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
 
 
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
// cp.cs -- Uses methods in the File class to check whether a file exists.
//          If it exists, it then opens and reads the file to the console.
//
//          Compile this program with the following command line
//              C:>csc cp.cs
using System;
using System.IO;
 
 
namespace nsStreams
{
    public class cp
    {
        static public void Main (string [] args)
        {
            if (args.Length < 2)
            {
Console.WriteLine ("usage: cp <copy from> <copy to>");
return;
            }
            if (!File.Exists (args[0]))
            {
Console.WriteLine (args[0] + " does not exist");
return;
            }
            bool bOverwrite = false;
            if (File.Exists (args[1]))
            {
Console.Write (args[1] + " already exists. Overwrite [Y/N]? ");
string reply = Console.ReadLine ();
char ch = (char) (reply[0] & (char) 0xdf);
if (ch != 'Y')
    return;
bOverwrite = true;
            }
            File.Copy (args[0], args[1], bOverwrite);
        }
    }
}

Inheritance of ideserializationcallback class

using System;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
 
[Serializable]
public class BookRecord : IDeserializationCallback {
    public String title;
    public int asin;
    [NonSerialized]
    public int rank;
 
 
    public BookRecord(String title, int asin) {
        this.title = title;
        this.asin = asin;
        rank = GetSalesRank();
    }
 
 
    public int GetSalesRank() {
        Random r = new Random();
        return r.Next(5000);
    }
 
 
    public void OnDeserialization(Object o) {
        rank = GetSalesRank();
    }
}
 
 
 
 
 
 
public class StreamObject {
    public static void Main() {
        BookRecord book = new BookRecord("title", 123456789);
        Console.WriteLine(book.title + " " + book.asin +" " + book.rank);
 
 
        FileStream stream = new FileStream(@"book.obj", FileMode.Create);
        BinaryFormatter bf = new BinaryFormatter();
        bf.Serialize(stream, book);
        stream.Close();
 
 
        FileStream streamIn = new FileStream(@"book.obj", FileMode.Open);
        BookRecord bookIn = (BookRecord)bf.Deserialize(streamIn);
        Console.WriteLine(bookIn.title + " " + bookIn.asin + " " + bookIn.rank);
    }
}

Encoding.utf8/unicode/utf32 using getstring

using System;
public class MainClass {
    public static void Main() {
        byte[] utf8Bytes = System.Text.Encoding.UTF8.GetBytes("0123456789");
        byte[] utf16Bytes = System.Text.Encoding.Unicode.GetBytes("0123456789");
        byte[] utf32Bytes = System.Text.Encoding.UTF32.GetBytes("0123456789");
 
 
        string original1 = System.Text.Encoding.UTF8.GetString(utf8Bytes);
        string original2 = System.Text.Encoding.Unicode.GetString(utf16Bytes);
        string original3 = System.Text.Encoding.UTF32.GetString(utf32Bytes);
 
 
        Console.WriteLine(original1);
        Console.WriteLine(original2);
        Console.WriteLine(original3);
    }
}

Encoding.utf8/unicode/utf32/ using getbytes

using System;
 
 
public class MainClass {
    public static void Main() {
        byte[] utf8Bytes = System.Text.Encoding.UTF8.GetBytes("0123456789");
        byte[] utf16Bytes = System.Text.Encoding.Unicode.GetBytes("0123456789");
        byte[] utf32Bytes = System.Text.Encoding.UTF32.GetBytes("0123456789");
 
 
        Console.WriteLine(utf8Bytes.Length);
        Console.WriteLine(utf16Bytes.Length);
        Console.WriteLine(utf32Bytes.Length);
    }
}

Encoding: unicode ascii getbytes getstring

using System;
using System.IO;
using System.Text;
 
 
class MainClass
{
    public static void Main()
    {
        using (StreamWriter output = new StreamWriter("output.txt"))
        {
            string srcString = "Area = \u03A0r^2";
            output.WriteLine("Source Text : " + srcString);
 
 
            byte[] utf16String = Encoding.Unicode.GetBytes(srcString);
            output.WriteLine("UTF-16 Bytes: {0}",BitConverter.ToString(utf16String)); 
 
 
            byte[] utf8String = Encoding.UTF8.GetBytes(srcString);
            byte[] asciiString = Encoding.ASCII.GetBytes(srcString);
 
 
            output.WriteLine("UTF-8 Bytes: {0}",
            BitConverter.ToString(utf8String));
            output.WriteLine("ASCII Bytes: {0}",
            BitConverter.ToString(asciiString));
 
 
            output.WriteLine("UTF-8 Text : {0}",Encoding.UTF8.GetString(utf8String));
            output.WriteLine("ASCII Text : {0}",Encoding.ASCII.GetString(asciiString));
        }
 
 
    }
}

String encoding example

 
using System;
using System.IO;
using System.Text;
 
 
class Test
{
    public static void Main() 
    {        
        using (StreamWriter output = new StreamWriter("practice.txt")) 
        {
            // Create and write a string containing the symbol for Pi.
            string srcString = "Area = \u03A0r^2";
 
 
            // Convert the UTF-16 encoded source string to UTF-8 and ASCII.
            byte[] utf8String = Encoding.UTF8.GetBytes(srcString);
            byte[] asciiString = Encoding.ASCII.GetBytes(srcString);
 
            // Write the UTF-8 and ASCII encoded byte arrays. 
            output.WriteLine("UTF-8  Bytes: {0}", BitConverter.ToString(utf8String));
            output.WriteLine("ASCII  Bytes: {0}", BitConverter.ToString(asciiString));
 
 
            // Convert UTF-8 and ASCII encoded bytes back to UTF-16 encoded  
            // string and write.
            output.WriteLine("UTF-8  Text : {0}", Encoding.UTF8.GetString(utf8String));
            output.WriteLine("ASCII  Text : {0}", Encoding.ASCII.GetString(asciiString));
 
 
            Console.WriteLine(Encoding.UTF8.GetString(utf8String));
            Console.WriteLine(Encoding.ASCII.GetString(asciiString));
        }
    }
}

Encoding to bigendianunicode

using System;
using System.Text;
 
 
class StringEncodingApp {
    static void Main(string[] args) {
        byte[] bb = new byte[] { 0, 72, 0, 101, 0, 108, 0, 108, 0, 111 };
        string t = Encoding.BigEndianUnicode.GetString(bb);
        Console.WriteLine(t);
    }
}

Encoding string to ascii

using System;
using System.Text;
 
 
class StringEncodingApp {
    static void Main(string[] args) {
        byte[] ba = new byte[] { 72, 101, 108, 108, 111 };
        string s = Encoding.ASCII.GetString(ba);
        Console.WriteLine(s);
    }
}

Get drive type using c#

 
 
using System;
using System.IO;
 
 
class MainClass {
    static void Main(string[] args) {
        FileInfo file = new FileInfo("c:\\a.txt");
 
 
        // Display drive information.
        DriveInfo drv = new DriveInfo(file.FullName);
 
 
        Console.Write("Drive: ");
        Console.WriteLine(drv.Name);
 
 
        if (drv.IsReady) {
            Console.Write("Drive type: ");
            Console.WriteLine(drv.DriveType.ToString());
        }
    }
}

Get drive name using driveinfo(fullname)

using System;
using System.IO;
 
 
class MainClass {
    static void Main(string[] args) {
        FileInfo file = new FileInfo("c:\\a.txt");
 
 
        // Display drive information.
        DriveInfo drv = new DriveInfo(file.FullName);
 
        Console.Write("Drive: ");
        Console.WriteLine(drv.Name);
 
    }
}

Get drive format using c#

using System;
using System.IO;
 
 
class MainClass {
    static void Main(string[] args) {
        FileInfo file = new FileInfo("c:\\a.txt");
        DriveInfo drv = new DriveInfo(file.FullName);
 
 
        Console.Write("Drive: ");
        Console.WriteLine(drv.Name);
 
 
        if (drv.IsReady) {
            Console.WriteLine(drv.DriveFormat.ToString());
        }
    }
}

Display a text file using csharp

 
/*
C#: The Complete Reference 
by Herbert Schildt 
 
 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
 
 
/* Display a text file. 
 
   To use this program, specify the name  
   of the file that you want to see. 
   For example, to see a file called TEST.CS, 
   use the following command line. 
 
   ShowFile TEST.CS 
*/ 
 
using System; 
using System.IO;  
 
public class ShowFile { 
  public static void Main(string[] args) { 
    int i; 
    FileStream fin; 
 
    try { 
      fin = new FileStream(args[0], FileMode.Open); 
    } catch(FileNotFoundException exc) { 
      Console.WriteLine(exc.Message); 
      return; 
    } catch(IndexOutOfRangeException exc) { 
      Console.WriteLine(exc.Message + "\nUsage: ShowFile File"); 
      return; 
    } 
 
    // read bytes until EOF is encountered 
    do { 
      try { 
        i = fin.ReadByte(); 
      } catch(Exception exc) { 
        Console.WriteLine(exc.Message); 
        return; 
      } 
      if(i != -1) Console.Write((char) i); 
    } while(i != -1); 
 
    fin.Close(); 
  } 
}