Выбери любимый жанр

Выбрать книгу по жанру

Фантастика и фэнтези

Детективы и триллеры

Проза

Любовные романы

Приключения

Детские

Поэзия и драматургия

Старинная литература

Научно-образовательная

Компьютеры и интернет

Справочная литература

Документальная литература

Религия и духовность

Юмор

Дом и семья

Деловая литература

Жанр не определен

Техника

Прочее

Драматургия

Фольклор

Военное дело

Последние комментарии
оксана2018-11-27
Вообще, я больше люблю новинки литератур
К книге
Professor2018-11-27
Очень понравилась книга. Рекомендую!
К книге
Vera.Li2016-02-21
Миленько и простенько, без всяких интриг
К книге
ст.ст.2018-05-15
 И что это было?
К книге
Наталья222018-11-27
Сюжет захватывающий. Все-таки читать кни
К книге

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю - Страница 365


365
Изменить размер шрифта:

Обратите внимание, что метод

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>

}

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

f3.Delete();

<b>// Теперь получить объект FileStream с правами только для записи.</b>

FileInfo f4 = new FileInfo(fileName);

using(FileStream writeOnlyStream = f4.OpenWrite())

{

<b>  // Использовать объект FileStream...</b>

}

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

f4.Delete();

Метод FileInfо.OpenText()

Еще одним членом типа

FileInfo
, связанным с открытием файлов, является
OpenText()
. В отличие от
Create()
,
Open()
,
OpenRead()
и
OpenWrite()
метод
OpenText()
возвращает экземпляр типа
StreamReader
, а не
FileStream
. Исходя из того, что на диске С: имеется файл по имени
boot.ini
, вот как получить доступ к его содержимому:

var fileName = $@&quot;C{Path.VolumeSeparatorChar}

                   {Path.DirectorySeparatorChar}Test.dat&quot;;

...

<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>

}

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

f5.Delete();

Вскоре вы увидите, что тип

StreamReader
предоставляет способ чтения символьных данных из лежащего в основе файла.

Методы FileInfo.CreateText() и FileInfo.AppendText()

Последними двумя методами, представляющими интерес в данный момент, являются

CreateText()
и
AppendText()
. Оба они возвращают объект
StreamWriter
:

var fileName = $@&quot;C{Path.VolumeSeparatorChar}

     {Path.DirectorySeparatorChar}Test.dat&quot;;

...

FileInfo f6 = new FileInfo(fileName);

using(StreamWriter swriter = f6.CreateText())

{

<b>  // Использовать объект StreamWriter...</b>

}

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

f6.Delete();

FileInfo f7 = new FileInfo(fileName);

using(StreamWriter swriterAppend = f7.AppendText())

{

<b>  // Использовать объект StreamWriter...</b>

}

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

f7.Delete();

Как и можно было ожидать, тип

StreamWriter
предлагает способ записи данных в связанный с ним файл.

Работа с типом File

В типе

File
определено несколько статических методов для предоставления функциональности, почти идентичной той, которая доступна в типе
FileInfo
. Подобно
FileInfо
тип
File
поддерживает методы
AppendText()
,
Create()
,
CreateText()
,
Open()
,
OpenRead()
,
OpenWrite()
и
OpenText()
. Во многих случаях типы
File
и
FileInfo
могут применяться взаимозаменяемо. Обратите внимание, что методы
OpenText()
и
OpenRead()
требуют существования файла. Чтобы взглянуть на тип
File
в действии, упростите приведенные ранее примеры использования типа
FileStream
, применив в каждом из них тип
File
:

var fileName = $@&quot;C{Path.VolumeSeparatorChar}

                   {Path.DirectorySeparatorChar}Test.dat&quot;;

...

<b>// Использование File вместо FileInfo.</b>

using (FileStream fs8 = File.Create(fileName))