Герберт Шилдт - C# 4.0: полное руководство
- Название:C# 4.0: полное руководство
- Автор:
- Жанр:
- Издательство:ООО И.Д. Вильямс
- Год:2011
- Город:Москва -- Киев
- ISBN:978-5-8459-1684-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Герберт Шилдт - C# 4.0: полное руководство краткое содержание
В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.
Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию
C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
BinaryReader(Stream input)
где input обозначает поток, из которого вводятся считываемые данные. Для чтения из входного файла в качестве параметра input может быть указан объект, создаваемый средствами класса
FileStream
. Если же поток, определяемый параметром input , не был открыт для чтения данных или оказался недоступным по иным причинам, то генерируется исключение ArgumentException
. По завершении ввода из потока типа BinaryReader
его нужно закрыть. При этом закрывается и базовый поток.
В классе
BinaryReader
определены методы, предназначенные для чтения данных всех встроенных в C# типов. Некоторые из этих методов перечислены в табл. 14.6. Следует, однако, иметь в виду, что в методе Readstring()
считывается символьная строка, хранящаяся во внутреннем формате с указанием ее длины. Все методы данного класса генерируют исключение IOException
, если возникает ошибка ввода. Кроме того, могут быть сгенерированы и другие исключения.
Таблица 14.6. Наиболее часто используемые методы, определенные в классе BinaryReader
Метод - Описание
bool ReadBoolean()- Считывает значение логического типа bool
byte ReadByte()- Считывает значение типа byte
sbyte ReadSByte()- Считывает значение типа sbyte
byte[] ReadBytes(int count)- Считывает количество count байтов и возвращает их в виде массива
char ReadChar()- Считывает значение типа char
char[] ReadChars(int count)- Считывает количество count символов и возвращает их в виде массива
decimal ReadDecimal()- Считывает значение типа decimal
double ReadDouble()- Считывает значение типа double
float ReadSingle()- Считывает значение типа float
short Readlnt16()- Считывает значение типа short
int Readlnt32()- Считывает значение типа int
long Readlnt64()- Считывает значение типа long
ushort ReadUIntl6()- Считывает значение типа ushort
uint ReadUInt32()- Считывает значение типа uint
ulong ReadUInt64()- Считывает значение типа ulong
string ReadString() - Считывает значение типа string, представленное во внутреннем двоичном формате с указанием длины строки. Этот метод следует использовать для считывания строки, которая была записана средствами класса
BinaryWriter
В классе
BinaryWriter
определены также три приведенных ниже варианта метода Read()
.
При неудачном исходе операции чтения эти методы генерируют исключение
IOException
. Кроме того, в классе BinaryReader
определен стандартный метод Close().
Метод - Описание
int Read() - Возвращает целочисленное представление следующего доступного символа из вызывающего потока ввода. При обнаружении конца файла возвращает значение -1
int Read(byte [] buffer, int offset, int count)- Делает попытку прочитать количество count байтов в массив buffer, начиная с элемента buffer[offset ], и возвращает количество успешно считанных байтов
int Read(char[] buffer, int offset, int count)- Делает попытку прочитать количество count символов в массив buffer , начиная с элемента buffer[offset ], и возвращает количество успешно считанных символов
Демонстрирование двоичного ввода-вывода
Ниже приведен пример программы, в котором демонстрируется применение классов BinaryReader и BinaryWriter для двоичного ввода-вывода. В этой программе в файл записываются и считываются обратно данные самых разных типов.
// Записать двоичные данные, а затем считать их обратно.
using System;
using System.IO;
class RWData {
static void Main() {
BinaryWriter dataOut;
BinaryReader dataIn;
int i = 10;
double d = 1023.56;
bool b = true;
string str = "Это тест";
// Открыть файл для вывода,
try {
dataOut = new
BinaryWriter(new FileStream("testdata", FileMode.Create));
}
catch(IOException exc) {
Console.WriteLine("Ошибка открытия файла:" + exc.Message); return;
}
// Записать данные в файл,
try {
Console.WriteLine("Запись " + i);
dataOut.Write(i);
Console.WriteLine("Запись " + d);
dataOut.Write(d);
Console.WriteLine("Запись " + b);
dataOut.Write(b);
Console.WriteLine("Запись " + 12.2 * 7.4);
dataOut.Write(12.2 * 7.4);
Console.WriteLine("Запись " + str);
dataOut.Write(str);
}
catch(IOException exc) {
Console.WriteLine("Ошибка ввода-вывода:\n" + exc.Message);
} finally {
dataOut.Close();
}
Console.WriteLine();
//А теперь прочитать данные из файла,
try {
dataIn = new
BinaryReader(new FileStream("testdata", FileMode.Open));
}
catch(IOException exc) {
Console.WriteLine("Ошибка открытия файла:" + exc.Message);
return;
}
try {
i = dataIn.ReadInt32();
Console.WriteLine("Чтение " + i);
d = dataIn.ReadDouble();
Console.WriteLine("Чтение " + d);
b = dataIn.ReadBoolean();
Console.WriteLine("Чтение " + b);
d = dataIn.ReadDouble();
Console.WriteLine("Чтение " + d);
str = dataIn.ReadString();
Console.WriteLine("Чтение " + str);
}
catch(IOException exc) {
Console.WriteLine("Ошибка ввода-вывода:\n" + exc.Message);
} finally {
dataIn.Close();
}
}
}
Вот к какому результату приводит выполнение этой программы.
Запись 10
Запись 1023.56
Запись True
Запись 90.28
Запись Это тест
Чтение 10
Чтение 1023.56
Чтение True
Чтение 90.28
Чтение Это тест
Если просмотреть содержимое файла testdata, который получается при выполнении этой программы, то можно обнаружить, что он содержит данные в двоичной, а не в удобочитаемой текстовой форме.
Интервал:
Закладка: