- •1 Классы потоков
- •1.3 Символьные классы потоков
- •2.1.2 Запись данных в консольный входной поток
- •2.2 Класс FileStream. Файловый побайтовой ввод-вывод
- •2.2.1 Открытие и закрытие файла
- •2.2.2 Считывание байт из объекта класса FileStream..
- •2.3 Файловый ввод-вывод с ориентацией на символы
- •2.3.1 Использование класса StreamWriter
- •2.3.2 Использование класса StreamReader
- •2.4 Перенаправление стандартных потоков
- •2.5 Считывание и запись двоичных данных
- •2.5.1 Класс BinaryWriter
- •Класс BinaryReader
- •Применение двоичного ввода-вывода
- •2.7 Считывание входных данных из массива и запись их в массив
- •2.9 Преобразование числовых строк во внутреннее представление
2.3 Файловый ввод-вывод с ориентацией на символы
2.3.1 Использование класса StreamWriter
№ 8 ??????
// "Клавиатура-диск" с применением класса StreamWriter
using System;
using System.IO;
class Kl_disk
{ public static void Main()
{ string str;
FileStream fout;
try {
Console.WriteLine("\n_U1");
fout = new FileStream("d:/domdfa.doc", FileMode.Create); // 14
Console.WriteLine("\n_U2");
} catch (IOException exc) {
Console.WriteLine("\n_U3");
Console.WriteLine(exc.Message + " Не удается открыть файл.");
return; }
StreamWriter fstr_out = new StreamWriter(fout);
Console.WriteLine(" Введите текст(`стоп` для завершения).");
do { Console.Write(": ");
str = Console.ReadLine();
if (str != "стоп")
{ str = str + "\r\n"; // Добавляем символ новой строки
try { Console.WriteLine("\n_U4");
fstr_out.Write(str);
} catch (IOException exc) {
Console.WriteLine(exc.Message + " Ошибка при работе с файлом.");
return;
} } } while (str != "стоп"); Console.WriteLine("\n\n\n "); fstr_out.Close(); }}
Рис 8 Фрагменты ответов при настройке текста пограммы № 8
№ 8.1
//Открытие файла с использованием класса StreamWriter
// "Клавиатура-диск" с применением класса StreamWriter
using System;
using System.IO;
class Kl_disk{
public static void Main()
{ string str;
StreamWriter fstr_out;
// Открываем файл напрямую, используя класс StreamWriter.
try {
Console.WriteLine("\n_U1");
fstr_out = new StreamWriter("d:/text11.tst");
Console.WriteLine("\n_U2");
} catch (IOException exc) {
Console.WriteLine("\n_U3");
Console.WriteLine(exc.Message + " Не удается открыть файл.");
return;
}
// StreamWriter fstr_out = new StreamWriter(fout);
Console.WriteLine(" Введите текст(`стоп` для завершения).");
do
{ Console.Write(": ");
str = Console.ReadLine();
if (str != "стоп")
{ str = str + "\r\n"; // Добавляем символ новой строки
try {
Console.WriteLine("\n_U4");
fstr_out.Write(str);
}
catch (IOException exc)
{ Console.WriteLine(exc.Message + " Ошибка при работе с файлом.");
return;
}
}
} while (str != "стоп");
Console.WriteLine("\n\n\n ");
fstr_out.Close();
} }
Ввод текста
Введенный Данная программа выполняет наиболее просто ввод
текст в файле с клавиатуры текста прямо в файл d:/text11.txt
d:/text11.txt
Рис 8.1 Ввод с клавиатуры символов в файл, используя класс SteamWriter
2.3.2 Использование класса StreamReader
№ 9 ????
// Открытие файла и вывод его содержания на экран в виде символов с
// помощью класса StreamReader // FileStream
// Вывод с файла на экран символов с помощью класса StreamReader
//
using System;
using System.IO;
class disktoStream {
public static void Main() {
FileStream fin; //StreamReader fin;
string s;
try { Console.WriteLine("\n U1");
fin = new FileStream /*SteamReader*/("d:/text11.tst", FileMode.Open); // ?????
Console.WriteLine("\n U2");
} catch(FileNotFoundException exc) {
Console.WriteLine("\n U3");
Console.WriteLine(exc.Message + "Не удается открыть файл.");
return;
}
StreamReader fstr_in = new StreamReader(fin);
// Считываем файл построчно
while((s = fstr_in.ReadLine()) != null) { // ?????
Console.WriteLine(s);
}
fstr_in.Close();
}
}