在一些用于编写和读取文件的代码中,首先创建FileStream对象,然后将其作为参数传递给StreamWrite或StreamReader,我的问题是为什么他们不只是创建StreamWrite或StreamReader?并且每个StreamWrite或StreamReader是否自动创建FileStream?
FileStream output=new FileStream(fileName,FileMode.OpenOrCreate,FileAccess.Write);
StreamWriter fileWriter=new StreamWriter(output)
非常感谢
答案 0 :(得分: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
}
这种方法非常通用,几乎可以读取任何流,从而重用代码..
答案 1 :(得分:0)
你是对的,可以直接使用FilePath实例化SteamWriter,并且会自动创建FileStream。
但请记住,StreamWriter是一个能够写入任何Stream(不仅仅是FileStream)的对象;在引擎盖下创建FileStream的便利构造函数通常足够好。但是,如果有人特别需要打开具有非常特定选项集的FileStream,他们将首先创建FileStream,然后将其传递给StreamWriter。