Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_13_14 / ЛАБ_13_C# / Лекция.doc
Скачиваний:
15
Добавлен:
02.02.2015
Размер:
454.66 Кб
Скачать

2.4 Перенаправление стандартных потоков

№ 10

Два способа перенаправления:

1. Оператоы ”< “ и/или “>” Пример:

Using System;

Class Test {

Public static void Main() {

Console.WriteLine(“Это тест.”);

}

}

В командной строке > Test > log // Текст «Этот тест» запишется в файл log

2. способ – переправляет стандартные потоки программно. Используются методы: Setin(), SetOut(), SetError() – члены класса Console:

static void SetIn(TextReader input)

static void SetOut(YextWriter output)

static void SetError(TextWriter output)

// Перенаправление потока Console.Out

using System;

using System.IO;

class Redirect

{

public static void Main()

{

StreamWriter log_out;

try

{

Console.WriteLine("\n U1 ");

log_out = new StreamWriter("logfile.text");

Console.WriteLine("\n U2 ");

}

catch (IOException exc)

{ Console.WriteLine("\n U3 ");

Console.WriteLine(exc.Message + " Не удается открыть файлю");

return;

}

// Направляем стандартный поток в системный журнал

Console.WriteLine("\n U4 ");

// Console.SetOut(log_out);

Console.WriteLine("\n Это начало системного журнала.");

for (int i = 0; i < 10; i++) Console.WriteLine(" " + i);

Console.WriteLine(" Это конец системного журнала.");

// Console.WriteLine("\n\n\n ");

log_out.Close();

Console.WriteLine("\n\n\n U5");

}

}

Рис 10 Результаты перенаправления стандартных потоков

2.5 Считывание и запись двоичных данных

Здесь рассматривается считывание и запись двоичных данных различных типов С# (дополнительно к рассмотренным ранее байтовых и символьных данных рассматриваются представление данных типов int, double, short, long). Для этого используются классы BinaryReader и BinaryWriter.

2.5.1 Класс BinaryWriter

Этот класс является оболочкой для байтового поока, которая управляет записью двоичных данных. Наиболее употребительный консьруктор имеет вид:

BinaryWriter(Stream outputStream)

Здесь outputStream – поток, в который будут записываться данные, при этом могут генерироваться ИС:

ArgumentNullException – генерируются null-значения;

ArgumentException- поток не открыт для записи.

В классе BinaryWriter определены методы, способные записывать значения всех встроенных С#-типов (см. таблицу)

Методы

Описание

1

Void Write(sbyte val)

Записывает byte-значение (со знаком)

2

Void Write(byte val)

Записывает byte-значение (без знака)

3

Void Write(byte[] buf)

Записывает массив byte-значений

4

Void Write(short val)

Записывает целочисленное значение типа short (короткое целое)

5

Void Write(ushort val)

Записывает целочисленное ushort-значение (короткое целое без знака)

6

Void Write(int val)

Записывает целочисленное значение типа int

7

Void Write(uint val)

Записывает целочисленное uint-значение (целое без знака)

8

Void Write(long val)

Записывает целочисленное значение типа (длинное целое)

9

Void Write(ulong val)

Записывает целочисленное ulong-значение (длинное целое без знака)

10

Void Write(float val)

Записывает float-значение

11

Void Write(double val)

Записывает double-значение

12

Void Write(char val)

Записывает символ

13

Void Write(char[] buf)

Записывает массив символов

14

Void Write(string val)

Записывает string-значение с использованием его внутреннего представления, котоое включает спецификатор длины

Соседние файлы в папке ЛАБ_13_C#