任何的File.ReadAllText()和使用StreamReader讀取文件內容之間的差異?



6向下投票最喜愛的

 

 

起初,我用了從文件中讀取文本的StreamReader

讀卡器 新 的StreamReader 對話框。使用OpenFile ())
txtEditor 文本 閱讀器。ReadToEnd ();

但發現有關File.ReadAllText這似乎簡化我的代碼,以1號線。但我想,如果有2之間的任何分歧?或什么時候我應該比其他使用1

txtEditor 文本  文件。ReadAllText (對話。的FileName ;

 


3投票接受

有沒有差異,如果你正在使用ReadToEnd()方法。不同的是,如果你不加載到內存中整個文件,而是讓你來處理塊中使用大文件的ReadLine()方法。

因此,使用File.ReadAllText(),而不是ReadToEnd() ,因為它使你的代碼更短,更可讀。它也需要照顧,妥善處置資源,因為你可能會忘記做的StreamReader(正如你在你的片段)。

 

最多投票1下投票

如果您使用的ReadToEnd,他們是相同的。否則,使用StreamReader的,讓你一次讀取的字節,與他們做一些計算,然后把它們扔掉需要。例如,如果你有一個文件,包含一個2000號碼的列表,你想加在一起,你可以:

  • 呼叫File.ReadAllText讀入一個字符串的所有內容,然后通過這個字符串解析計算總和。
  • 或者你可以創建一個StreamReader一次讀取幾個字節,計算的金額,當您去。

這兩種方法之間的主要區別是短暫的內存使用。的款項后,你有,你可以隨時離開扔掉了所有的中間數據。在File.ReadAllText方法,在某些時候,你有整個文件內容在內存中,而與StreamReader方法,你只有幾個字節,在任何一個時間價值在內存中的文件內容。這可能是一個問題,根據文件的大小和計算,你做。

File.ReadAllText是方便快捷。 StreamReader是強大的,但更多的工作。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM