Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
С# ЛР 9.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
97 Кб
Скачать
☆
  1. Запустите Visual Studio.

  2. В меню Файл выберите команду Создать, а затем — пункт Проект.

  3. Типы проектоввыберите вариант Проекты Visual C# и в группе Шаблоны щелкните Консольное приложение. Примечание В Visual Studio 2005 или Visual Studio 2008 выберите C# в списке Типы проектови в группеШаблоны щелкните Консольное приложение CLR.

  4. Добавьте следующий код в начало файла Class1.Cs.

using System.IO;

  1. Добавьте следующий код в метод Main . :

try

{

//Pass the filepath and filename to the StreamWriter Constructor

StreamWriter sw = new StreamWriter("C:\\Test.txt");

//Write a line of text

sw.WriteLine("Hello World!!");

//Write a second line of text

sw.WriteLine("From the StreamWriter class");

//Close the file

sw.Close();

}

catch(Exception e)

{

Console.WriteLine("Exception: " + e.Message);

}

finally

{

Console.WriteLine("Executing finally block.");

}

  1. В меню Отладка выберите команду Пуск для компиляции и запуска приложения. Этот код создает файл с именем Test.txt на диске C. открытого файла Test.txt в текстовый редактор, например Блокнот. Test.txt содержит две строки текста:

  2. Hello World!!

  3. From the StreamWriter class

Запись в текстовый файл (пример 2)

В следующем коде используется класс StreamWriter для открытия, записи и закройте текстовый файл. В отличие от предыдущего примера этот код передает конструктору два дополнительных параметра. Первый параметр является путь к файлу и имя файла. Второй параметр, значение True, указывает, что файл открыт в режиме добавления. Если задатьзначение False для второго параметра, содержимое файла перезаписывается каждый раз при выполнении кода. Третий параметр указывает Юникода, так что StreamWriter кодирует файл в формате Юникод. Можно также указать следующие методы кодирования для третьего параметра:

  • ASC11

  • Юникод

  • UTF7

  • UTF8

Метод Write аналогичен метод WriteLine , за исключением того, что метод Write не автоматически встраивает символы возврата каретки или перевода строки (CR/LF) сочетание знаков. Это полезно, когда требуется написать один символ одновременно.

  1. Запустите Visual Studio.

  2. В меню Файл выберите команду Создать, а затем — пункт Проект.

  3. Типы проектоввыберите вариант Проекты Visual C# и в группе Шаблоны щелкните Консольное приложение Примечание В Visual Studio 2005 или Visual Studio 2008 выберите C# в списке Типы проектови в группеШаблоны щелкните Консольное приложение

  4. Добавьте следующий код в начало файла Class1.cs ..

  5. using System.IO;

using System.Text;

Примечание В Visual Studio 2005 или Visual Studio 2008 файл по умолчанию является файл Program.cs.

  1. Добавьте следующий код в метод Main . :

Int64 x;

try

{

//Open the File

StreamWriter sw = new StreamWriter("C:\\Test1.txt", true, Encoding.ASCII);

//Writeout the numbers 1 to 10 on the same line.

for(x=0; x < 10; x++)

{

sw.Write(x);

}

//close the file

sw.Close();

}

catch(Exception e)

{

Console.WriteLine("Exception: " + e.Message);

}

finally

{

Console.WriteLine("Executing finally block.");

}

  1. В меню Отладка выберите команду Пуск для компиляции и запуска приложения. Этот код создает файл с именем Test1.txt на диске C. открыть Test1.txt в текстовом редакторе, таком как Блокнот. Test1.txt содержит одну строку текста:

0123456789

Полный пример кода

Чтение текстового файла

//Read a Text File

using System;

using System.IO;

namespace readwriteapp

{

class Class1

{

[STAThread]

static void Main(string[] args)

{

String line;

try

{

//Pass the file path and file name to the StreamReader constructor

StreamReader sr = new StreamReader("C:\\Sample.txt");

//Read the first line of text

line = sr.ReadLine();

//Continue to read until you reach end of file

while (line != null)

{

//write the lie to console window

Console.WriteLine(line);

//Read the next line

line = sr.ReadLine();

}

//close the file

sr.Close();

Console.ReadLine();

}

catch(Exception e)

{

Console.WriteLine("Exception: " + e.Message);

}

finally

{

Console.WriteLine("Executing finally block.");

}

}

}

}

Запись в текстовый файл (версия 1)

//Write a text file - Version-1

using System;

using System.IO;

namespace readwriteapp

{

class Class1

{

[STAThread]

static void Main(string[] args)

{

try

{

//Pass the filepath and filename to the StreamWriter Constructor

StreamWriter sw = new StreamWriter("C:\\Test.txt");

//Write a line of text

sw.WriteLine("Hello World!!");

//Write a second line of text

sw.WriteLine("From the StreamWriter class");

//Close the file

sw.Close();

}

catch(Exception e)

{

Console.WriteLine("Exception: " + e.Message);

}

finally

{

Console.WriteLine("Executing finally block.");

}

}

}

}

Запись в текстовый файл (версия 2)

//Write a text file - Version 2

using System;

using System.IO;

using System.Text;

namespace readwriteapp

{

class Class1

{

[STAThread]

static void Main(string[] args)

{

Int64 x;

try

{

//Open the File

StreamWriter sw = new StreamWriter("C:\\Test1.txt", true, Encoding.ASCII);

//Writeout the numbers 1 to 10 on the same line.

for(x=0; x < 10; x++)

{

sw.Write(x);

}

//close the file

sw.Close();

}

catch(Exception e)

{

Console.WriteLine("Exception: " + e.Message);

}

finally

{

Console.WriteLine("Executing finally block.");

}

}

}

}

Устранение неполадок

Для всех манипуляций с файлами перенос кода в блок try-catch-finally для обработки ошибок и исключений является хорошим стилем программирования. В частности необходимо освободить обрабатывает файл в последний блок таким образом, файл заблокирован не бесконечно. Некоторые возможные ошибки включают файл, который не существует, или файл, который уже используется.

Выводы:

Все необходимые классы находятся в пространстве имен System.IO.

Создание файла.

Для этого воспользуемся классом FileInfo из пространства имен System.IO. В конструктор передаем имя будущего файла. Создание файла производится вызовом метода Create().

FileInfo fi = new FileInfo("new.txt");

fi.Create();

Удаление файла.

Все аналогично предыдущему примеру. Для удаления файла используем метод Delete().

FileInfo fi = new FileInfo("new.txt");

fi.Delete();

Запись в файл.

Для записи (а в последующем и для чтения) в файл мы будем использовать символьные потоки позволяющие оперировать непосредственно с символами Unicode.

StreamWriter sw = new StreamWriter("name.txt");

sw.WriteLine("блаблабла");

sw.Close();

После всех действий над файлом не забываем закрывать его используя метод Close(), в противном случае изменения в файле не только не будут сохранены. Приведеный выше пример записи файла полностью перезаписывает его, если же надо дописать в конец файла:

StreamWriter sw;

FileInfo fi = new FileInfo("name.txt");

sw = fi.AppendText();

sw.WriteLine("blablabla");

sw.Close();