using System;
using System.IO;
public class IOExample
{
static void Main() {
FileStream fs;
StreamWriter sw;
try {
fs = new FileStream("practice.txt", FileMode.Open );
sw = new StreamWriter(fs);
// write a line to the file
string newLine = "Not so different from you and me";
sw.WriteLine(newLine);
// close the streams
sw.Close();
fs.Close();
} catch (IOException ioe) {
Console.WriteLine("IOException occurred: "+ioe.Message);
}
}
}
Catch file read exception and retry
using System;
using System.IO;
class Retry {
static void Main() {
StreamReader sr;
int attempts = 0;
int maxAttempts = 3;
GetFile:
Console.Write(”
[Attempt #{0}] Specify file ” + “to open/read: “, attempts + 1);
string fileName = Console.ReadLine();
try {
sr = new StreamReader(fileName);
string s;
while (null != (s = sr.ReadLine())) {
Console.WriteLine(s);
}
sr.Close();
} catch (FileNotFoundException e) {
Console.WriteLine(e.Message);
if (++attempts < maxAttempts) {
Console.Write("Do you want to select another file: ");
string response = Console.ReadLine();
response = response.ToUpper();
if (response == "Y") goto GetFile;
} else {
Console.Write("You have exceeded the maximum retry limit ({0})", maxAttempts);
}
} catch (Exception e) {
Console.WriteLine(e.Message);
}
}
}
[/csharp]
StreamReader.ReadLine
using System;
using System.IO;
public class MainClass {
public static void Main() {
FileStream fs2 = File.Create("Bar.txt");
StreamWriter w2 = new StreamWriter(fs2);
w2.Write("Goodbye Mars");
w2.Close();
fs2 = File.Open("Bar.txt", FileMode.Open, FileAccess.Read, FileShare.None);
StreamReader r2 = new StreamReader(fs2);
String t;
while ((t = r2.ReadLine()) != null) {
Console.WriteLine(t);
}
w2.Close();
fs2.Close();
}
}
Read data in line by line
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
class Program {
static void Main(string[] args) {
string strLine;
try {
FileStream aFile = new FileStream("Log.txt", FileMode.Open);
StreamReader sr = new StreamReader(aFile);
strLine = sr.ReadLine();
while (strLine != null) {
Console.WriteLine(strLine);
strLine = sr.ReadLine();
}
sr.Close();
} catch (IOException e) {
Console.WriteLine("An IO exception has been thrown!");
Console.WriteLine(e.ToString());
return;
}
}
}
Reading from a text file line by line
using System;
using System.IO;
class MainClass {
public static void Main(string[] args) {
try {
FileStream fs = new FileStream("c:a.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs);
string line = "";
int lineNo = 0;
do {
line = sr.ReadLine();
if (line != null) {
Console.WriteLine("{0}: {1}", lineNo, line);
lineNo++;
}
} while (line != null);
} catch (Exception e) {
Console.WriteLine("Exception in ShowFile: {0}", e);
}
}
}
Use StreamWriter to create a text file
using System;
using System.IO;
public class MyStreamWriterReader {
static void Main(string[] args) {
StreamWriter writer = new StreamWriter(“reminders.txt”);
writer.WriteLine(“…”);
writer.WriteLine(“Don't forget these numbers:”);
for (int i = 0; i < 10; i++)
writer.Write(i + " ");
writer.Write(writer.NewLine);
writer.Close();
StreamReader sr = new StreamReader("reminders.txt");
string input = null;
while ((input = sr.ReadLine()) != null) {
Console.WriteLine(input);
}
}
}
[/csharp]
Demonstrate the use of the Null stream as a bit bucket
/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
// NullStrm.cs — demonstrate the use of the Null stream as a bit bucket.
//
// Compile this program with the following command line:
// C:>csc NullStrm.cs
//
using System;
using System.IO;
namespace nsStreams
{
public class NullStrm
{
static public void Main ()
{
byte [] b = new byte [256];
int count = Stream.Null.Read (b, 0, b.Length);
Console.WriteLine (“Read {0} bytes”, count);
string str = “Hello, World!”;
StringToByte (out b, str);
Stream.Null.Write (b, 0, b.Length);
// Attach a reader and writer to the Null stream
StreamWriter writer = new StreamWriter (Stream.Null);
StreamReader reader = new StreamReader (Stream.Null);
writer.Write (“This is going nowhere”);
str = reader.ReadToEnd ();
Console.Write (“The string read contains {0} bytes”, str.Length);
}
// Convert a buffer of type string to byte
static void StringToByte (out byte [] b, string str)
{
b = new byte [str.Length];
for (int x = 0; x < str.Length; ++x)
{
b[x] = (byte) str [x];
}
}
}
}
[/csharp]

