1

在一些用于写入和读取文件的代码中,首先创建 FileStream 对象,然后将其作为参数传递给 StreamWrite 或 StreamReader,我的问题是为什么他们不只是创建 StreamWrite 或 StreamReader ?每个 StreamWrite 或 StreamReader 是否自动创建 FileStream ?

FileStream output=new FileStream(fileName,FileMode.OpenOrCreate,FileAccess.Write);
StreamWriter fileWriter=new StreamWriter(output)

非常感谢

4

2 回答 2

0

你是对的,可以直接使用 FilePath 实例化 SteamWriter,并且会在后台自动创建 FileStream。

但请记住,StreamWriter 是一个能够写入任何 Stream(不仅仅是 FileStreams)的对象;在底层创建 FileStream 的便利构造函数通常足够好。但是如果有人有特殊需要打开一个带有非常特定选项的 FileStream,他们将首先创建 FileStream,然后将其传递给 StreamWriter。

于 2013-10-05T06:36:12.603 回答
0

如果要写入或读取文件,可以使用File类。

File.ReadAllText(path);
File.WriteAllText(path,txt);
File.ReadAllLines(path);
File.WriteAllLines(path,lineArray);

没必要用FileStream..


要回答您关于为什么StreamWriter以及StreamReader需要通过FileStream..

这样可以重复使用StreamWriter..StreamReader

readStream(new FileStream(path,FileMode.Open));//read file stream
readStream(new NetworkStream(url));//read  newtwork stream
readStream(new MemoryStream(object));//read memory stream

public void readStream(StreamReader sr)//general reader method
{
//read stream
}

这种方法非常通用,它几乎可以读取任何流,从而重用代码..

于 2013-10-05T06:30:04.947 回答