Использование Visual C# для чтения и записи в текстовый файл
В этой статье описано, как выполнить чтение и запись в текстовый файл с помощью Visual C#.
Оригинальная версия продукта: Visual Studio
Оригинальный номер базы знаний: 816149
Сводка
В разделе Чтение текстового файла этой статьи описывается, как использовать класс StreamReader для чтения текстового файла. В разделах Запись в текстовый файл (пример 1) и Запись в текстовый файл (пример 2) описывается, как использовать класс StreamWriter для записи текста в файл.
Чтение текстового файла
В следующем коде используется класс StreamReader для открытия, чтения и закрытия текстового файла. Можно передать путь к текстовому файлу в конструктор StreamReader для автоматического открытия файла. Метод ReadLine считывает каждую строку текста и перемещает указатель файла на следующую строку по мере чтения. Если метод ReadLine достигает конца файла, он возвращает пустую ссылку. Дополнительные сведения см. в разделе Класс StreamReader.
- Создайте пример текстового файла в Блокноте. Выполните приведенные ниже действия.
- Вставьте текст hello world в Блокнот.
- Сохраните файл как Sample.txt.
using System.IO;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 line 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); >finallyHello worldЗапись в текстовый файл (пример 1)
В следующем коде используется класс StreamWriter для открытия, записи и закрытия текстового файла. Аналогично тому, как используется класс StreamReader , можно передать путь к текстовому файлу в конструктор StreamWriter для автоматического открытия файла. Метод WriteLine записывает всю текстовую строку в текстовый файл.
- Запустите Visual Studio.
- В меню Файл выберите пункт Создать, а затем выберите Проект.
- Выберите Проекты Visual C# в разделе Типы проектов, а затем выберите Консольное приложение в разделе Шаблоны.
- Добавьте следующий код в начало файла Class1.cs:
using System.IO;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); >finallyHello World!! From the StreamWriter classЗапись в текстовый файл (пример 2)
В следующем коде используется класс StreamWriter для открытия, записи и закрытия текстового файла. В отличие от предыдущего примера, этот код передает в конструктор два дополнительных параметра. Первый параметр — путь к файлу и имя файла. Второй параметр, true , указывает, что файл открыт в режиме добавления. Если вы задаете false для второго параметра, содержимое файла перезаписывается при каждом запуске кода. Третий параметр задает Unicode , чтобы кодирование файла в StreamWriter выполнялось в формате Юникода. Можно также указать следующие методы кодирования для третьего параметра:
Метод Write аналогичен методу WriteLine , за исключением того, что метод Write не вставляет автоматически сочетание символов возврата каретки или перевода строки (CR/LF). Это полезно, когда нужно одновременно записывать по одному символу.
- Запустите Visual Studio.
- В меню Файл выберите пункт Создать и затем пункт Проект.
- Нажмите Проекты Visual C# в разделе Типы проектов, а затем нажмите Консольное приложение в разделе Шаблоны.
- Добавьте следующий код в начало файла Class1.cs:
using System.IO; using System.Text;Int64 x; try < //Open the File StreamWriter sw = new StreamWriter("C:\\Test1.txt", true, Encoding.ASCII); //Write out 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Полный код сборки для чтения текстового файла
//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 line 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 для обработки ошибок и исключений является хорошей практикой программирования, когда речь заходит о выполнении любых операций с файлом. В частности, может потребоваться освободить дескрипторы файла в окончательном блоке, чтобы файл не был заблокирован на неопределенный срок. Некоторые возможные ошибки включают файл, который не существует, или файл, который уже используется.
Обратная связь
Были ли сведения на этой странице полезными?
Visual Studio. Как добавить .txt файл?
Задача:
Есть проект, в него надо добавить текстовый файл(Readme.txt) и, соответственно, заполнить его. Что-то не могу догнать, можно ли это сделать средствами такого распиаренного Visual Studio(до этого сидел на Rider, там это делается в 2 клика — ПКМ->добавить файл).- Вопрос задан более трёх лет назад
- 9260 просмотров
Комментировать
Решения вопроса 1

Эх, как же хочется худенькую, бледную, не очень.
ПКМ пр проекту — добавить — создать элемент — текстовый файл. он будет лежать в C:\Users\User\source\repos\WindowsFormsApp1\WindowsFormsApp1 где и папка bin (это всё по стандарту) полный путь, содержание, настройка отношения файла к процессам сборки и внедрения, имя файла и ещё 2 пункта можно изменить в самом Visual Studio.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Как создать текстовый файл в visual studio
Пример1 Записываем текст, а старые данные стираются (если файл не существует создается новый файл и записывается текст)
C# Создаем новое C# консольное приложение. и напишем код
using System.IO; // подключаем библиотеку для работы с файлами
namespace ConsoleApplication1
<
class Program
<
static void Main( string [] args)
<
string filePath = «D://1.txt» ; // имя файла
string text = «Hello!» ; // текст для записи в файл// открываем файл (стираем содержимое файла)
using (FileStream fileStream = File.Open(filePath, FileMode.Create))
<
using (StreamWriter output = new StreamWriter(fileStream))
<
// записываем текст в поток
output.Write(text);
>
>
>
>
>Пример2 Записываем текст в конец файла (если файл не существует создаем файл)
C# Создаем новое C# консольное приложение. и напишем код// подключаем библиотеку для работы с файлами
using System.IO;namespace ConsoleApplication1
<
class Program
<
static void Main( string [] args)
<
string filePath = «D://1.txt» ; // имя файла
string text = «Hello!» ; // текст для записи в файл// открываем файл если нет файла то создаем файл
using (StreamWriter fileStream = File.Exists(filePath) ? File.AppendText(filePath) : File.CreateText(filePath))
<
fileStream.WriteLine(text);
>
>
>
>Visual Studio: как добавить текстовый файл в C#-проект и отобразить его в древе проекта?
Во всех примерах по работе с текстовыми файлами (расширение .txt ) на языке C#, которые я видел, текстовый файл предлагалось сохранять вне проекта. Но я хочу, чтобы текстовый файл хранился внутри решения (например, в подпапке Data ). Visual Studio в меню добавления нового файла предлагает добавлять только определённые типы файлов, среди которых нет текстовых. Таким образом, насколько я на данный момент знаю, текстовый файл можно добавить в проект только с помощью проводника Windows (или сторонних аналогов). Если это сделать, то хотя тест на наличие файла (код ниже) и даст положительный результат, файл не будет отображаться в древе проекта.
Console.WriteLine(File.Exists(curFile) ? "File exists." : "File does not exist.");Отслеживать
user177221
задан 6 окт 2017 в 2:17
Боков Глеб Боков Глеб
1,084 2 2 золотых знака 25 25 серебряных знаков 68 68 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Visual Studio в меню добавления нового файла предлагает добавлять только определённые типы файлов, среди которых нет текстовых.

Разве? В окне добавления новго элемента выберите раздел «Общие» и Вы увидите в числе прочих «Текстовый файл». Если файл создан вне студии, в конктекстном меню проекта есть пункт «Добавить»-> «Существующий элемент». Он откроет стандартный диалог Windows для открытия файлов. Выбираете в правом нижнем углу «Все файлы» и можете добавить в проект какой угодно файл. В том числе текстовый.