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]