2-й семестр / Примеры к лекциям / Тема 6.3 C#. Примеры
.docПример 1
using System.IO;
class Program
{ static void Main(string[] args)
{ string path = "E:\\info.txt";
string newPath = "E:\\Dir\\info.txt";
FileInfo fileInf1 = new FileInfo(path);
if (File.Exists(path))
{ Console.WriteLine("Имя файла: {0}", fileInf1.Name);
Console.WriteLine("Время создания: {0}", fileInf1.CreationTime);
Console.WriteLine("Размер: {0}", fileInf1.Length);
fileInf1.CopyTo(newPath, true);
// альтернатива с помощью класса File
// File.Copy(path, newPath, true);
fileInf1.Delete();
// альтернатива с помощью класса File
// File.Delete(path);
} else Console.WriteLine("Файл " + path + " не существует");
Console.ReadLine();
}
}
Пример 2
using System;
using System.IO;
class Program
{ static void Main(string[] args)
{ Console.WriteLine("Введите строку для записи в файл:");
string text = Console.ReadLine();
try
{ // запись в файл
FileStream fstream1 = new FileStream("E:\\Dir\\info.txt", FileMode.OpenOrCreate);
// преобразуем строку в байты
byte[] array1 = System.Text.Encoding.Default.GetBytes(text);
// запись массива байтов в файл
fstream1.Write(array1, 0, array1.Length);
Console.WriteLine("Текст записан в файл");
fstream1.Close();
// чтение из файла
FileStream fstream2 = File.OpenRead("E:\\Dir\\info.txt");
byte[] array2 = new byte[fstream2.Length];
// считываем данные
fstream2.Read(array2, 0, array2.Length);
// декодируем байты в строку
string textFromFile = System.Text.Encoding.Default.GetString(array2);
Console.WriteLine("Текст из файла: {0}", textFromFile);
fstream2.Close();
}
catch (Exception e)
{ Console.WriteLine("Ошибка: " + e.Message); }
Console.ReadKey();
}
}
Пример 3
using System;
using System.IO;
class Program
{ static void Main(string[] args)
{ string path = "E:\\Dir\\info.txt";
try
{ Console.WriteLine("******считываем весь файл********");
using (StreamReader sr = new StreamReader(path))
{
Console.WriteLine(sr.ReadToEnd());
}
Console.WriteLine();
Console.WriteLine("******считываем построчно********");
using (StreamReader sr = new StreamReader(path, System.Text.Encoding.Default))
{ string line;
while ((line = sr.ReadLine()) != null)
Console.WriteLine(line);
}
Console.WriteLine();
Console.WriteLine("******считываем блоками********");
using (StreamReader sr = new StreamReader(path, System.Text.Encoding.Default))
{ char[] array = new char[4];
// считываем 4 символа
sr.Read(array, 0, 4);
Console.WriteLine(array);
}
}
catch (Exception e)
{ Console.WriteLine("Ошибка: " + e.Message); }
Console.ReadKey();
}
}
Пример 4
using System;
using System.IO;
class Program
{ static void Main(string[] args)
{ string readPath = "E:\\Dir\\info.txt";
string writePath = "E:\\Dir\\info2.txt";
string text = "";
try
{ using (StreamReader sr = new StreamReader(readPath, System.Text.Encoding.Default))
{text = sr.ReadToEnd();
}
using (StreamWriter sw = new StreamWriter(writePath, false, System.Text.Encoding.Default))
{ sw.WriteLine(text);
}
Console.WriteLine("Выполнена запись файла!");
using (StreamWriter sw = new StreamWriter(writePath, true, System.Text.Encoding.Default))
{ sw.WriteLine("Дозапись");
sw.Write(4.5);
}
Console.WriteLine("Выполнена дозапись файла!");
}
catch (Exception e)
{ Console.WriteLine("Ошибка: " + e.Message); }
Console.ReadKey();
}
}
Пример 5
using System;
using System.IO;
struct State
{ public string name;
public string capital;
public int area;
public double people;
public State(string n, string c, int a, double p)
{ name = n;
capital = c;
people = p;
area = a;
}
}
class Program
{ static void Main(string[] args)
{ State[] states = new State[2];
states[0] = new State("Россия", "Москва", 3756588, 145.5);
states[1] = new State("Украина", "Киев", 603700, 55.4);
string path = "E:\\Dir\\info3.txt";
try
{ // создаем объект BinaryWriter
using (BinaryWriter writer = new BinaryWriter(File.Open(path, FileMode.OpenOrCreate)))
{ // записываем в файл значение каждого поля структуры
foreach (State s in states)
{ writer.Write(s.name);
writer.Write(s.capital);
writer.Write(s.area);
writer.Write(s.people);
}
}
// создаем объект BinaryReader
using (BinaryReader reader = new BinaryReader(File.Open(path, FileMode.Open)))
{ // пока не достигнут конец файла
// считываем каждое значение из файла
while (reader.PeekChar() > -1)
{ string name = reader.ReadString();
string capital = reader.ReadString();
int area = reader.ReadInt32();
double population = reader.ReadDouble();
Console.WriteLine("Страна: {0} столица: {1} площадь {2} кв. км\n" +
" численность населения: {3} млн. чел.", name, capital, area, population);
}
}
}
catch (Exception e)
{ Console.WriteLine("Ошибка: " + e.Message); }
Console.ReadKey();
}
}
Пример 6
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace Serialization
{
[Serializable]
class Person
{ public string Name;
public int Age;
public Person(string name, int age)
{ Name = name;
Age = age;
}
}
class Program
{ static void Main(string[] args)
{ // объект для сериализации
Person person = new Person("Tom", 29);
Console.WriteLine("Объект создан");
// создаем объект BinaryFormatter
BinaryFormatter formatter = new BinaryFormatter();
// получаем поток, куда будем записывать сериализованный объект
using (FileStream fs = new FileStream("E:\\Dir\\persons.dat", FileMode.OpenOrCreate))
{ formatter.Serialize(fs, person);
Console.WriteLine("Объект сериализован");
}
// десериализация из файла persons.dat
using (FileStream fs = new FileStream("E:\\Dir\\persons.dat", FileMode.OpenOrCreate))
{ Person newPerson = (Person)formatter.Deserialize(fs);
Console.WriteLine("Объект десериализован");
Console.WriteLine("Имя: {0} --- Возраст: {1}", newPerson.Name, newPerson.Age);
}
Console.ReadLine();
}
}
}
Пример 7
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace Serialization
{
[Serializable]
class Person
{ public string Name;
public int Age;
public Person(string name, int age)
{ Name = name;
Age = age;
}
}
class Program
{ static void Main(string[] args)
{ Person person1 = new Person("Tom", 29);
Person person2 = new Person("Bill", 25);
// массив для сериализации
Person[] persons = new Person[] { person1, person2 };
BinaryFormatter formatter = new BinaryFormatter();
using (FileStream fs = new FileStream("E:\\Dir\\persons2.dat", FileMode.OpenOrCreate))
{ // сериализуем весь массив persons
formatter.Serialize(fs, persons);
Console.WriteLine(" Массив объектов сериализован");
}
// десериализация
using (FileStream fs = new FileStream("E:\\Dir\\persons2.dat", FileMode.OpenOrCreate))
{ Person[] deserilizePersons = (Person[])formatter.Deserialize(fs);
Console.WriteLine(" Массив объектов десериализован");
foreach (Person p in deserilizePersons)
Console.WriteLine("Имя: {0} --- Возраст: {1}", p.Name, p.Age);
}
Console.ReadLine();
}
}
}