使用 System.IO 的 stringreader 和 Visual C# 讀取中文文字檔

來源:互聯網
上載者:User
文章目錄
  • 注意事項 
1. 開啟 Visual Studio .2005。在 C# 中建立控制台應用程式。 Visual Studio 給您建立一個靜態類以及一個空的 Main() 過程。
2. 確保該項目至少引用了 System 名稱空間。 對 Systemsystem.io System.Collections 名稱空間使用 using 語句,這樣,在後面的代碼中就不需要限定這些名稱空間中的聲明了。 這些語句必須位於所有其他聲明之前。

using System;            using System.IO;
using System.Text;            using System.Collections;

3. 若要開啟一個檔案以進行讀取,請建立 StreamReader 對象的一個新執行個體,並將該檔案的路徑傳遞到建構函式中(如下所示),使用Encoding.Default可以是讀取的中文不為亂碼

StreamReader sr = new StreamReader(@"c:\\test.txt",Encoding.Default);

4. 您需要一個字串變數,處理時將檔案的每一行儲存到該變數中。 因為將把這些行添加到一個 ArrayList 中,所以還應該聲明和建立一個該類型的對象。

string sLine="";            ArrayList arrText = new ArrayList();

5. 讀取該檔案有很多種方法,其中包括一次性讀取整個檔案的 ReadToEnd 方法。 但是,在本樣本中,您可以使用 ReadLine 方法每次唯讀取檔案中的一行。 當到達檔案結尾時,此方法返回空值,這可以用於結束迴圈。 當您從檔案中讀取每一行時,可以使用 ArrayList Add 方法將這些行插入到 ArrayList 類中。

while (sLine != null)            {            sLine = sr.ReadLine();            if (sLine != null)            arrText.Add(sLine);            }            sr.Close();

6. 使用 For Each 迴圈將新填充的 ArrayList 內容寫入到控制台(如下所示):

foreach (string Line in arrText)            Console.WriteLine(Line);            Console.ReadLine();

7. 儲存並運行您的代碼,它將給控制台組建檔案的內容列表。
 

完整代碼清單  

using System;
using System.Collections;
using System.Text;
using System.IO;

namespace homework
{
    class Document
    {
        public static void Read()
        {
            try
            {
                StreamReader sr = new StreamReader(@"c:\\test.txt",Encoding.Default);
                ArrayList arrText = new ArrayList();
                String sLine = "";

                while (sLine != null)
                {
                    sLine = sr.ReadLine();
                    if (sLine != "")
                        arrText.Add(sLine);
                }
                sr.Close();

                foreach (String Line in arrText)
                    Console.WriteLine(Line);
                Console.ReadLine();
            }
            catch(Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }

    }
    class work
    {
        static void Main(string[] args)
        {
            Document.Read();
        }
    }
}

注意事項 

在處理檔案 I/O 時要注意一些問題,其中包括以下事項:

? 無論何時訪問某個檔案,要讀取或寫入的檔案都有可能不在系統上,或者正在使用當中。
? 在處理檔案之前,本樣本先將整個檔案讀取到記憶體中。 您可能會遇到檔案太大而無法儲存到記憶體中,或者沒有許可權訪問該檔案的情況。

以上的任何情形都會引發一個異常。 最好始終提供一個 try...catch 塊來處理這些常見問題。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.