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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 361 362 363 364 365 366 367 368 369 ... 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>

}

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

1 ... 361 362 363 364 365 366 367 368 369 ... 642
На этой странице вы можете бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю бесплатно.
Похожие на Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю книги

Оставить комментарий