Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 217

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 211 212 213 214 215 216 < 217 > 218 219 220 221 222 223 .. 320 >> Следующая

public class MyStreamWriterReader
{
public static int Main(string[] args)
Код для записи файла остается прежний
I
// А теперь выводим информацию из файла на консоль при помощи // StreamReader
Console.WriteLine("Here апе your thoughts:\п"): StreamReader sr " Fi 1 е. OpenTextt" Thoughts.txt1'):
stning input = null:
while ((input = sr.ReadLineO) !-null)
{ }
Sr.ClOSeC);
return 0:
Console.Wrі teL і ne(і nput):
}
Результат работы этой программы представлен рис. IU 2
I^Ju:\tbharpBaok\Io\5treamWriterR«d
Created file and wrote sone thoughts ІНеге a*e your thought?:
Don't forget Mother's Day this yoar.. Don't forget Father* s Day this year* Don't forget these lumbers: 9123456789
Press any key to continue
UI
Рис. 11.12 Считываем данные из файла
В нашем примере мы получаем объект StreamReader при помощи метода hi'e.Pp»nlexU )¦ Л'Т-!ее мы считываем все строки и выводим их на консоль до того
Класс StringWriter 539
момента, пока нам не попадется пустая строка (означающая конец файла). Однако все можно сделать проще, если воспользоваться методом ReadToEndu:
// Давайте сраіу все!
string allOfTheData = sr.ReadToEndQ:
HessageBox.ShowtallOfTheData. "Here it is:"):
Sr.Closet);
Таким образом, если нам потребовалось записать какую-либо информацию в текстовый файл или считать информацию из текстового файла - классы StreamReij -der и StreamWri ter в нашем распоряжении.
Код приложения 5ігєат"\Угп;егІІеаиегАррможно найти в подкаталоге Chapter 11.
Класс StringWriter
При помощи классов ngWri и Stri ngReader мы можем обращаться к текстовой информации как к потоку в оперативной памяти. Такой подход может пригодиться, если мы добавляем текстовую информацию в специальный буфер в оперативной памяти. Для получения доступа к этому буферу мы можем воспользоваться тем же экземпляром класса StringWriter, вызвав для него замещенный метод ToSt г і ng() ¦(этот метод вернет объект класса System.String). Мы можем также воспользоваться методом St г і ngWri ter. GetSt гі ng?u і 1 der (). Как несложно догадаться, этот метод возвращает объект System.Text.StringBui 1 der, пользоваться которым часто бывает удобнее (подробнее о нем было рассказано в главе 2).
Давайте переделаем наш предыдущий пример так, чтобы информация сбрасывалась в объект StringWriter вместо файла на диске. Поскольку возможности Stnngwr1 ter и StreamWri ter очень схожи, программы будут почти неотличимы;
public class tyStreamWriterReader {
public static int MainCstring[] args) {
И Получаем объект StringWriter и с его понощью записываем
// в файл несколько строк текста
StringWriter writer = new StringWriterC):
writer.WriteLineCDon't forget Mother's Day this ,гаг..."):
writer.WriteLineC"Don't forget Father's Day this year...");
writer.WriteLineC"Don't forget these numbers:"):
i - 0; i < 10:
{
writer.WriteCi + " "):
}
Il Вставляєм символ начала новой строки writer.Write(writer,NewLine);
Il Метод CloseC) автоматически очищает все буферы! writer. Cl oseO:
Con;.uls.WiteLiricCS-.ored thoughts in a StringWriter..."):
// Получаен копию содержимого stringBuffer (в виде значения типа string) // и выводим ее на консоль
Console. Wri teLineC "Contents: {0}". writer.ToStringO);
540 Глава 11 • Ввод, вывод и сериализация объектов return
}
}
Результат работы этой нехитрой программы представлен на рис.
F4D:\C5harpBook\lo\StringReadeiWriterA(H: :" -ini
Stored (.!кшуЫа in a :: . ^ -. "- Contents : 'Don't forget ¦ ¦¦il Day this year-Don't forget Father's Day this year. . Don't furyet these numbers= B1234S6VB9 -
I1- any key to continue Zl
m~ r- ,:1
Рис. 11.1a Используем хранения символьных данньх объект БШдШж
m.M4d мыму мы ят тттттт.»¦'wggg -iqix
Don t Forget Father's Day Don't Forget these numbers= 0123456789
IS year...
B
StringBuilder says:
Don't Forget Hat her's Day this ^едг__.
Don't Forget Father's Day this year___
Don't Forget these numbers:
0 123456789
Hen StringBuilder says:
Don't forget Mother' INSERTED STUFFs Day this year.h, Don't forget Father's Day this year. . , .Don't forget these numbers =
01 23456789
Original says:
Don't forget Hotlier's Day this year___
Don't forget Father's Day this year.. -Don't forget these nunhers: 0123456789
Here are your і Iii s "
і * any hey to continue
LH
J
Рис. 11.14. Применение String vieler совместно со StringWriter
Теперь давайте получим доступ к содержимому StringWriter через объект StringBuilder:
// Это нам потребуется для StringBuilder using System.Text:
public class KvStreaaM-iterReader {
public static int Main(string[] args)
Ii заєсі: все остается как в предыдущем примере
// Получаем объект StringBuilder и выводим его содержикое
StringBuilder str - writer.GetStringBuilderO; string allOfTheData - str.ToString():
Работа с двоичными данными (классы BinaryReader и Binary Writer) 541
Класс StringReader
Класс Strl пдкеаоег, как вы уже, наверное, догадываетесь, нужен для считывания символьной информации из буфера в оперативной памяти точно также, как это делает класс StreamReader для файла. Его применение выглядит следующим образом:
Предыдущая << 1 .. 211 212 213 214 215 216 < 217 > 218 219 220 221 222 223 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100