|
1
1
StreamReader使用FileStream打开文件。FileStream存储由CreateFile()API函数返回的Windows句柄。在32位操作系统上为4字节。FileStream还有一个字节[]缓冲区,默认为4096字节。此缓冲区避免了每次读取调用都必须调用ReadFile()API函数。StreamReader本身有一个小的缓冲区,使解码文件中的文本更有效,默认为128字节。它有一些私有变量来跟踪缓冲区索引以及是否检测到BOM。 所有这些加起来只有几千字节。使用StreamReader读取的数据当然会占用程序堆中的空间。如果您存储 每一个 比如说,输入一个列表。你通常希望避免这种情况。 |
|
|
2
5
流的整个点是这样的,您不必在内存中保存整个对象。你可以根据需要逐条阅读。
如果要附加到文件,应使用
以下是一个例子:
同样,整个文件不会存储在内存中。 http://msdn.microsoft.com/en-us/library/system.io.file.appendtext.aspx |
|
|
3
2
NET
|
|
|
4
1
StreamReader将 不 将6MB的文件读入内存。此外,不能使用StreamReader在文件末尾追加一行。您可能需要使用StreamWriter。 更新:不包括其他人提到的缓冲和操作系统缓存 |
|
|
A B · C#Excel自动调整列避免长文本时出错 11 月前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 11 月前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 11 月前 |
|
|
Duck0 · 这个对象在更高的帧率下会更快吗,因为它在Update()中? 11 月前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 11 月前 |