2013-10-05 2 views
1

В некотором коде для записи и чтения файла сначала создайте объект FileStream, а затем передайте его как аргумент StreamWrite или StreamReader, поэтому мой вопрос заключается в том, почему они не просто создают StreamWrite или StreamReader? и каждый StreamWrite или StreamReader автоматически создает FileStream?Передача FileStream в качестве аргумента для StreamWriter

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

Большое спасибо

ответ

0

Вы правы, можно создать экземпляр SteamWriter непосредственно с FilePath и FileStream будет автоматически создаваться под капотом.

Но помните, что StreamWriter - это объект, который может записывать любой поток (а не только FileStreams); конструктор удобства создания FileStream под капотом обычно достаточно хорош. Но если у кого-то есть особая потребность открыть FileStream с определенными опциями, они сначала создадут FileStream, а затем передадут его StreamWriter.

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 
} 

Этот метод является настолько общим, что может прочитать практически любой поток, таким образом, повторное использование код ..

Смежные вопросы