请在示例代码的注释中查看我的问题:
var fileStream = file.OpenStreamForReadAsync(); // [1]: Is the file stored in memory
// when opened as stream?
var reader = new StreamReader(fileStream);
string line;
while(!reader.EndOfStream)
{
line = await reader.ReadLineAsync(); // [2]: If answer of [1] is "no", how the reader
// works when reading a line, does it read from
// disk everytime?
...
}
对于StreamWriter而言,在写一行时,它是直接写入磁盘还是暂时写入内存?
答案 0 :(得分:0)
StreamWriter使用缓冲区。当您明确刷新它时,它会在using
块的末尾,或者当您在流上调用Close
或Dispose
时刷新到光盘。您也可以将其设置为自动刷新。
在阅读方面,每次其他除了从光盘读取外,它会做什么?你得到一个结果,不是吗?如果没有实际进行光盘读取,它会如何得出结果呢?