System.IO命名空間中的類為托管應用程序提供文件以及其他形式的輸入輸出。托管i/o的基本構件是流,而流是字節導向的數據的抽象表示。流通過System.IO.Stream類表示.
System.IO.FileStream允許將文件作為流訪問;
System.IO.MemoryStream允許將內存塊作為流進行訪問;…………
托管和非托管的應用程序最常使用的IO形式是文件IO。托管應用程序讀寫文件的一般步驟如下
1、用FileStream對象打開文件
2、進行二進制讀寫操作,在FileStream對象周圍包裝BinaryReader和BinaryWriter的實例,並調用BinaryReader和BinaryWriter方法執行輸入輸出。
3、要讀寫文本,在FileStream對象的周圍包裝一個StreamReader和StreamWriter,然後使用StreamReader和StreamWriter方法完成輸入輸出。
4、關閉FileStream對象。
下面是一個簡單的文本文件讀操作
using System;
using System.IO;
class FileTest
{
static void Main(string [] args)
{
string filename="testfile.txt";
//打開文件並顯示其內容
StreamReader reader=null;
try
{
reader=new StreamReader(filename);
for(string line=reader.ReadLine();line!=null;line=reader.ReadLine())
Console.WriteLine(line);
}
catch(IOException e)
{
Console.WriteLine(e.Message);
}
finally
{
if(reader!=null)
reader.Close();
}
}
}
/**
* FCL是一個非常豐富的類庫,所以還有許多打開文件並進行讀取的方法,比如
* 1.用File.open創建一個FileStream,並圍繞它包裝一個StreamReader
* FileStream stream=File.Open(filename,FileMode.Open,FileAccess.Read);
* StreamReader reader=new StreamReaderaa(stream);
* 2.使用File.OpenText,在一步內創建一個FileStream和一個StreamReader
* StreamReader reader=File.OpenText(filename);
* 當然,還有其他的方法
* 若要對文本進行寫入操作,可以使用StreamWriter
*/
其中的異常處理是為了防止意外的事情發生,如傳遞給StreamReader的構造函數的文件名非法,或者在執行raeder.Close();前匡架引發異常等。