将FileStream作为参数传递给StreamWriter

时间:2013-10-05 06:24:44

标签: c# .net

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

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

非常感谢

2 个答案:

答案 0 :(得分:0)

如果您想写或读文件,可以使用File类。

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

无需使用FileStream ..


要回答一个问题,为什么StreamWriterStreamReader需要通过FileStream ..

这样StreamWriterStreamReader可以重复使用..

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
}

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

答案 1 :(得分:0)

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

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