Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Троелсен Эндрю, "Язык программирования C#9 и платформа .NET5" бесплатно, без регистрации.
Пусть имеется новый проект консольного приложения под названием
FileStreamApp
System.IO
System.Text
myMessage.dat
FileStream
System.String
System.Text
Encoding
После кодирования байтовый массив сохраняется в файле с помощью метода
FileStream.Write()
Position
ReadByte()
using System;
using System.IO;
using System.Text;
<b>// He забудьте импортировать пространства имен System.Text и System.IO.</b>
Console.WriteLine("***** Fun with FileStreams *****n");
<b>// Получить объект FileStream.</b>
using(FileStream fStream = File.Open("myMessage.dat",
FileMode.Create))
{
<b> // Закодировать строку в виде массива байтов.</b>
string msg = "Hello!";
byte[] msgAsByteArray = Encoding.Default.GetBytes(msg);
<b> // Записать byte[] в файл.</b>
fStream.Write(msgAsByteArray, 0, msgAsByteArray.Length);
<b> // Сбросить внутреннюю позицию потока.</b>
fStream.Position = 0;
<b> // Прочитать byte[] из файла и вывести на консоль.</b>
Console.Write("Your message as an array of bytes: ");
byte[] bytesFromFile = new byte[msgAsByteArray.Length];
for (int i = 0; i < msgAsByteArray.Length; i++)
{
bytesFromFile[i] = (byte)fStream.ReadByte();
Console.Write(bytesFromFile[i]);
}
<b> // Вывести декодированное сообщение.</b>
Console.Write("nDecoded Message: ");
Console.WriteLine(Encoding.Default.GetString(bytesFromFile));
Console.ReadLine();
}
File.Delete("myMessage.dat");
В приведенном примере не только производится наполнение файла данными, но также демонстрируется основной недостаток прямой работы с типом
FileStream
Stream
MemoryStream
Как упоминалось ранее, в пространстве имен
System.IO
Stream
Работа с типами StreamWriter и StreamReader
Классы
StreamWriter
StreamReader
System.Text.Encoding
Класс
StreamReader
TextReader
StringReader
TextReader
Класс
StreamWriter
StringWriter
TextWriter
Чтобы содействовать пониманию основных возможностей записи в классах
StreamWriter
StringWriter
TextWriter

На заметку! Вероятно, последние два члена класса
TextWriter
System.Console
Write()
WriteLine()
Console.In
TextWriter
Console.Out
TextWriter
Производный класс
StreamWriter
Write()
Close()
Flush()
AutoFlush
true
StreamWriter
AutoFlush
false
StreamWriter
Close()