我們在前一個練習中已經瞭解瞭如何在C#控制台程式(console)中讀取用戶的輸入。現在我們要學習如何從一個文件中讀取內容。在下麵的練習中,你要格外小心。關於文件的操作,一不小心會損失你的重要文件。 在這個練習中我們首先要創建一個純文本文件ex10_sample.txt 放到c盤的Exercise1 ...
我們在前一個練習中已經瞭解瞭如何在C#控制台程式(console)中讀取用戶的輸入。現在我們要學習如何從一個文件中讀取內容。在下麵的練習中,你要格外小心。關於文件的操作,一不小心會損失你的重要文件。
在這個練習中我們首先要創建一個純文本文件ex10_sample.txt 放到c盤的Exercise10目錄下。通常c盤下是沒有Exercise10目錄的,請先建立這個目錄。我們的C#程式會讀取這個純文本文件的內容。如果你不知道如何創建純文本文件,請首先在網上查一下。如果查不到,可以聯繫我哦。
這個文件的內容如下:
1. 這是我用c#讀取的第一個文件
2. 我和David學習C#,感覺進步很快
3. 我想介紹我的朋友也和David學習C#
我們想實現的功能是用我們的程式打開一個文件,然後把它的內容輸出出來。但是我們不想把文件的名字ex10_sample.txt寫死在程式裡邊。我們想在程式運行的時候,讓用戶輸入要打開的文件的名字。
你創建一個項目。解決方案名稱為Sloution10,項目名稱為Exercise10,項目類型為控制台程式。
點擊Program.cs. 在Main方法中加入這些代碼。
在這個新的程式中,我們引入一些對我們來說很新的功能。我在這裡給大家介紹一下。
15,16行代碼:讓用戶輸入要打開的文件名稱。文件我們要求放在c盤的exercise10目錄下。
20, 21行代碼:把文件的目錄名稱和文件名稱連接在一起,組成一個完成的文件路徑名稱。這樣我們的程式才能找到這個文件
23行碼:使用C#的File類判斷用c盤的exercise10目錄下用戶指定的文件,是否存在。File.Exists()是File的一個方法,它用文件的完整路徑路徑名稱作為參數,判斷該文件是否存在。
這裡給大家介紹一個新的語法 if, else
if (判斷條件)
{ 判斷條件為真要執行的代碼}
else
{ 判斷條件為假要執行的代碼}
如果判斷問真,就是true時,則執行 {判斷條件為真要執行的代碼};如果判斷條件為假,則執行{ 判斷條件為假要執行的代碼}
25行代碼:將文件中的內容全部讀出來,賦值給一個字元串。當文件很大時,這種方法需要占用很大的記憶體空間。還有其他一行一行讀取文件內容的方法,你可以在網上查一下。如果找不到,可以聯繫我哦。
27行代碼: 將字元串中的內容輸出到dos視窗中。
30,34代碼:文件名如果用戶提供的不對,就會找到文件。在我們的程式里我們會在dos視窗輸出一句話,提示用戶文件找不到。
運行結果
練習
1. 為每一條語句加上註釋,解釋它的功能。如果不明白,可以現在網上查詢。找不到,記得咨詢我。
2. 你自己創建一個新的文本文件和office word文件放在c盤的exercise10目錄下,用你的程式打開它們。
3. C#中還有其他讀取文件的方法,試著用其他方法讀取一下文件
4. 試著理解一下文件編碼的概念。在網上搜索一下吧。
5. 如果不指定File.ReadAllText()的編碼格式為Encoding.Default。你可以刪掉25行File.ReadAllText()的第二個參數Encoding.Default,看一下,文件的內容還會正常顯示嗎?