C# для начинающих Пахомов Б. И



Download 8,15 Mb.
Pdf ko'rish
bet225/266
Sana20.04.2022
Hajmi8,15 Mb.
#567200
1   ...   221   222   223   224   225   226   227   228   ...   266
Bog'liq
C# for beginners


Глава 16. Файловый ввод-вывод 
367 
Seek()
— выдает номер позиции в текущем потоке (это операция 
поиска); 
SetLength()
— задает длину текущего потока; 
Write()
— пишет последовательность байтов в текущий поток и пе-
ремещает указатель потока вперед на количество записанных бай-
тов; 
WriteByte()
— то же, что и метод 
Write()
, но для одиночного байта. 
Класс 
FileStream
Это производный класс от класса 
Stream
. Он может работать с одним 
байтом или с массивом байтов. Прежде чем составить приложение
с работой в рамках нового класса, подумаем, что нам придется превра-
щать в последовательности байтов строки данных: не задавать же мас-
сивы данных посимвольно. Это довольно утомительно. Оказывается,
в пространстве имен 
System.Text
существует специальный класс 
Encoding
, члены которого способны кодировать и декодировать строки в 
массивы байтов и наоборот. Закодированный массив сохраняется в фай-
ле с помощью метода 
FileStream.Write()
, а чтобы прочитать байты 
обратно в память, надо сбросить значение свойства 
Position
в начало 
потока и применить метод 
ReadByte()

Текст приложения приведен в листинге 16.6, а результат — на рис. 16.6. 
Листинг 16.6 
/* Created by SharpDevelop. 
* User: user 
* Date: 30.12.2012 
* Time: 15:33 

* To change this template use Tools | Options | Coding | 
* Edit Standard Headers. */ 
using System; 
using System.IO; 
using System.Text; 
namespace app81_filestream 

class Program 


368 
Часть II. Объектно-ориентированное программирование 

public static void Main() 

Console.WriteLine("Работа с классом FileStream"); 
// Открытие файла 
FileStream f= File.Open(@"D:\myTest22.txt", 
FileMode.Create); 
// Закодировать строку в виде массива байтов 
string msg = "Пример работы с классом FileStream"; 
byte[] Arr = Encoding.Default.GetBytes(msg); 
// Свойство Default получает кодировку для текущей 
// кодовой страницы ANSI операционной системы 
// Записать массив в файл 
f.Write(Arr, 0, Arr.Length); /* 0 — это номер байта 
в потоке, с которого 
начинается запись в файл */ 
// Сброс позиции потока в начало потока 
f.Position = 0; 
// Чтение потока 
Console.Write("Массив байтов из файла " + 
"(закодированная строка):\n"); 
byte[] b = new byte[Arr.Length]; 
for (int i = 0; i < Arr.Length; i++) 

b[i] = (byte)f.ReadByte(); 
// Метод ReadByte() возвращает байт, 
// переведенный в тип Int32, поэтому надо 
// сделать обратный перевод в тип byte 
Console.Write(b[i]); 

// Вывод декодированного результата 
Console.Write("\nДекодированный результат " + 
"(то, что было закодировано):\n"); 
Console.WriteLine(Encoding.Default.GetString(b)); 
Console.Read(); 
} // Main() 


Пояснения даны по тексту программы. 


Download 8,15 Mb.

Do'stlaringiz bilan baham:
1   ...   221   222   223   224   225   226   227   228   ...   266




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish