我們在前一個練習中已經了解了如何在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,看一下,文件的內容還會正常顯示嗎?
付費解答C#入門學習過程中碰到的各種問題。
零基礎學習C#入門,大多數的問題都可以通過自學或借助互聯網解決。
但是還是會有一些問題,不是那么容易解決,成為了你學習的絆腳石。最后甚至造成你學習的半途而廢。通常學習C#編程入門,你會遇到20到30多個你不能很容易解決的問題。
這個時候,你最需要什么呢?
對!一個專業的老師給你幫助!
你在學習本課程中,遇到任何問題都可以通過qq或email想本教程作者進行求助。
只需30元,你就可以得到本教程作者的三次專業解答。所以你只需不到300元就可以順利的完成C#入門,從此推開軟件行業的大門。
付費方式非常簡單:
用微信掃描下面的二維碼。在付款留言中留下你的qq號或email地址就可以啦。
教育不是要便宜,而是要可靠!真正聰明的人,更懂得花錢讓專業的人為自己服務,提高自己的效率。
老師qq:2040227296
老師email:2040227296@qq.com