Язык программирования C#9 и платформа .NET5
Часть 365 из 642 Информация о книге
Обратите внимание, что метод
требует, чтобы файл существовал. Следующий код создает файл и затем закрывает объектOpenRead(), так что он может использоваться методомFileStream:OpenRead()f3.Create().Close();Вот полный пример:
var fileName = $@"C{Path.VolumeSeparatorChar}{Path.DirectorySeparatorChar}Test.dat";...<b>// Получить объект FileStream с правами только для чтения.</b>FileInfo f3 = new FileInfo(fileName);// Перед использованием OpenRead() файл должен существовать.f3.Create().Close();using(FileStream readOnlyStream = f3.OpenRead()){<b> // Использовать объект FileStream...</b>}f3.Delete();<b>// Теперь получить объект FileStream с правами только для записи.</b>FileInfo f4 = new FileInfo(fileName);using(FileStream writeOnlyStream = f4.OpenWrite()){<b> // Использовать объект FileStream...</b>}f4.Delete();Метод FileInfо.OpenText()
Еще одним членом типа
, связанным с открытием файлов, являетсяFileInfo. В отличие отOpenText(),Create(),Open()иOpenRead()методOpenWrite()возвращает экземпляр типаOpenText(), а неStreamReader. Исходя из того, что на диске С: имеется файл по имениFileStream, вот как получить доступ к его содержимому:boot.inivar fileName = $@"C{Path.VolumeSeparatorChar}{Path.DirectorySeparatorChar}Test.dat";...<b>// Получить объект StreamReader.</b><b>// Если вы работаете не на машине с Windows,</b><b>// тогда измените имя файла надлежащим образом.</b>FileInfo f5 = new FileInfo(fileName);// Перед использованием OpenText() файл должен существовать.f5.Create().Close();using(StreamReader sreader = f5.OpenText()){<b> // Использовать объект StreamReader...</b>}f5.Delete();Вскоре вы увидите, что тип
предоставляет способ чтения символьных данных из лежащего в основе файла.StreamReaderМетоды FileInfo.CreateText() и FileInfo.AppendText()
Последними двумя методами, представляющими интерес в данный момент, являются
иCreateText(). Оба они возвращают объектAppendText():StreamWritervar fileName = $@"C{Path.VolumeSeparatorChar}{Path.DirectorySeparatorChar}Test.dat";...FileInfo f6 = new FileInfo(fileName);using(StreamWriter swriter = f6.CreateText()){<b> // Использовать объект StreamWriter...</b>}f6.Delete();FileInfo f7 = new FileInfo(fileName);using(StreamWriter swriterAppend = f7.AppendText()){<b> // Использовать объект StreamWriter...</b>}f7.Delete();Как и можно было ожидать, тип
предлагает способ записи данных в связанный с ним файл.StreamWriterРабота с типом File
В типе
определено несколько статических методов для предоставления функциональности, почти идентичной той, которая доступна в типеFile. ПодобноFileInfoтипFileInfоподдерживает методыFile,AppendText(),Create(),CreateText(),Open(),OpenRead()иOpenWrite(). Во многих случаях типыOpenText()иFileмогут применяться взаимозаменяемо. Обратите внимание, что методыFileInfoиOpenText()требуют существования файла. Чтобы взглянуть на типOpenRead()в действии, упростите приведенные ранее примеры использования типаFile, применив в каждом из них типFileStream:Filevar fileName = $@"C{Path.VolumeSeparatorChar}{Path.DirectorySeparatorChar}Test.dat";...<b>// Использование File вместо FileInfo.</b>using (FileStream fs8 = File.Create(fileName))