程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 使用 System.IO 和 Visual C# .NET 讀取文本文件

使用 System.IO 和 Visual C# .NET 讀取文本文件

編輯:關於C語言

使用 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 塊來處理這些常見問題。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved