将 FileStream 作为参数传递给 StreamWriter

本文关键字:StreamWriter 参数传递 FileStream | 更新日期: 2023-09-27 18:33:56

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

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

多谢

将 FileStream 作为参数传递给 StreamWriter

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

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

如果要

写入或读取文件,可以使用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
}

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