在doc.microsoft网站上,我们有像这样的流读取器解决方案
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{ // Open the text file using a stream reader.
using (StreamReader sr = new StreamReader("TestFile.txt"))
{
// Read the stream to a string, and write the string to the console.
String line = sr.ReadToEnd();
Console.WriteLine(line);
}
}
catch (Exception e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
}
}
但我也遇到过像这样的不同例子
FileStream fin = null;
try {
fin = new FileStream("test", FileMode.Open);
}
catch(IOException exc) {
Console.WriteLine(exc.Message);
}
定义可空的FileStream有什么好处吗?
答案 0 :(得分:3)
在第一个示例中,StreamReader 不在try
块之外可用(并且无论如何都是Dispose()
d。)
在第二个示例中,FileStream 在try
块之外可用,但可能为null(发生异常时)。您可以稍后再处理它。