任何的File.ReadAllText()和使用StreamReader读取文件内容之间的差异?

时间:2021-09-20 13:32:07


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是强大的,但更多的工作。