Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2-й семестр / Примеры к лекциям / Тема 6.3 C#. Примеры

.doc
Скачиваний:
51
Добавлен:
12.03.2016
Размер:
66.05 Кб
Скачать

Пример 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();

}

}

}

5