使用 system.io 和 visual c# .net 讀取文本文件
在 visual c# .net 中讀取文本文件 打開和讀取文件進行讀取訪問是輸入/輸出 (io) 功能的一個非常重要的部分,即使您不需要寫入到相關文件,也是如此。 本示例打開一個文件進行讀取,這適用于讀取文本文件,但不適用于讀取二進制文件。 本示例使用多個可用于打開文件的方法之一。 雖然很多數據結構都可以用于存儲從文件中檢索到的信息,但是,arraylist 類是使用最簡便的結構。 為了打開文件和從文件中讀取,本示例使用了 system.io 名稱空間中的對象,尤其是 system.io.streamreader 類。
備注: 本示例需要某種形式的文本 (.txt) 文件以從中讀取。
若要在 visual c# .net 中加載和讀取文本文件,請按照下列步驟操作: 1. 打開 visual studio .net。在 c# 中新建控制臺應用程序。 visual studio 給您創建一個靜態類以及一個空的 main() 過程。  
2. 確保該項目至少引用了 system 名稱空間。 對 system、system.io 和 system.collections 名稱空間使用 using 語句,這樣,在后面的代碼中就不需要限定這些名稱空間中的聲明了。 這些語句必須位于所有其他聲明之前。 
using system;
using system.io;
using system.collections; 
3. 若要打開一個文件以進行讀取,請創建 streamreader 對象的一個新實例,并將該文件的路徑傳遞到構造函數中(如下所示): 
streamreader objreader = new streamreader("c://test.txt"); 
4. 您需要一個字符串變量,處理時將文件的每一行存儲到該變量中。 因為將把這些行添加到一個 arraylist 中,所以還應該聲明和創建一個該類型的對象。 
string sline="";
arraylist arrtext = new arraylist(); 
5. 讀取該文件有很多種方法,其中包括一次性讀取整個文件的 readtoend 方法。 但是,在本示例中,您可以使用 readline 方法每次只讀取文件中的一行。 當到達文件結尾時,此方法返回空值,這可以用于結束循環。 當您從文件中讀取每一行時,可以使用 arraylist 的 add 方法將這些行插入到 arraylist 類中。 
while (sline != null)
{
sline = objreader.readline();
if (sline != null)
arrtext.add(sline);
}
objreader.close(); 
6. 使用 for each 循環將新填充的 arraylist 內容寫入到控制臺(如下所示): 
foreach (string soutput in arrtext)
console.writeline(soutput);
console.readline(); 
7. 保存并運行您的代碼,它將給控制臺生成文件的內容列表。  
using system;
using system.io;
using system.collections;
namespace textfilereader_csharp
...{
/**//// 
/// summary description for class1.
/// 
class class1
...{
static void main(string[] args)
...{
streamreader objreader = new streamreader("c:/test.txt");
string sline="";
arraylist arrtext = new arraylist();
while (sline != null)
...{
sline = objreader.readline();
if (sline != null)
arrtext.add(sline);
}
                        objreader.close();
foreach (string soutput in arrtext)
console.writeline(soutput);
console.readline();
}
}
}
疑難解答 在處理文件 i/o 時要注意一些問題,其中包括以下事項: ? 無論何時訪問某個文件,要讀取或寫入的文件都有可能不在系統上,或者正在使用當中。  
? 在處理文件之前,本示例先將整個文件讀取到內存中。 您可能會遇到文件太大而無法存儲到內存中,或者沒有權限訪問該文件的情況。  
以上的任何情形都會引發一個異常。 最好始終提供一個 try...catch 塊來處理這些常見問題。 
菜鳥學堂:
| 
 
 | 
新聞熱點
疑難解答
圖片精選