Запись текста в файл построчно на C#
Три самых простых способа как записать текст в файл построчно на C#. Во всех случаях используется using System.IO; . Напишу сразу примеры кода без всяких прелюдий.
Способ 1
Записать текстовый файл построчно:
Чтобы добавить текстовые данные в файл, просто укажите true после имени файла:
В этом случае, если файл не существует, то он будет создан новый, а если файл существует, он будет открыт для добавления данных. Соответственно, если второй параметр указать false, файл будет перезаписан.
Чтобы указать кодировку записываемого текстового файла (например, DOS-кодировку) можно сделать так:
Так же можно использовать обёртку using чтобы не нужно было закрывать файл после записи.
Способ 2
Запись с использованием FileStream.
Способ 3
Записать текстовый файл целиком из массива строк:
Думаю, приведенных примеров вполне достаточно для решения большинства задач по записи текстового файла.
Как записать строку в файл c
Для работы непосредственно с текстовыми файлами в пространстве System.IO определены специальные классы: StreamReader и StreamWriter .
Запись в файл и StreamWriter
Для записи в текстовый файл используется класс StreamWriter . Некоторые из его конструкторов, которые могут применяться для создания объекта StreamWriter:
StreamWriter(string path) : через параметр path передается путь к файлу, который будет связан с потоком
StreamWriter(string path, bool append) : параметр append указывает, надо ли добавлять в конец файла данные или же перезаписывать файл. Если равно true, то новые данные добавляются в конец файла. Если равно false, то файл перезаписываетсяя заново
StreamWriter(string path, bool append, System.Text.Encoding encoding) : параметр encoding указывает на кодировку, которая будет применяться при записи
Свою функциональность StreamWriter реализует через следующие методы:
int Close() : закрывает записываемый файл и освобождает все ресурсы
void Flush() : записывает в файл оставшиеся в буфере данные и очищает буфер.
Task FlushAsync() : асинхронная версия метода Flush
void Write(string value) : записывает в файл данные простейших типов, как int, double, char, string и т.д. Соответственно имеет ряд перегруженных версий для записи данных элементарных типов, например, Write(char value) , Write(int value) , Write(double value) и т.д.
Task WriteAsync(string value) : асинхронная версия метода Write. Обратите внимание, что асинхронные версии есть не для всех перегрузок метода Write.
void WriteLine(string value) : также записывает данные, только после записи добавляет в файл символ окончания строки
Task WriteLineAsync(string value) : асинхронная версия метода WriteLine
Рассмотрим запись в файл на примере:
В данном случае два раза создаем объект StreamWriter. В первом случае если файл существует, то он будет перезаписан. Если не существует, он будет создан. И в нее будет записан текст из переменной text. Во втором случае файл открывается для дозаписи, и будут записаны атомарные данные — строка и число.
По завершении в папке программы мы сможем найти файл note.txt, который будет иметь следующие строки:
В пример выше будет использоваться кодировка по умолчанию. но также можно задать ее явным образом:
Чтение из файла и StreamReader
Класс StreamReader позволяет нам легко считывать весь текст или отдельные строки из текстового файла.
Некоторые из конструкторов класса StreamReader:
StreamReader(string path) : через параметр path передается путь к считываемому файлу
StreamReader(string path, System.Text.Encoding encoding) : параметр encoding задает кодировку для чтения файла
Среди методов StreamReader можно выделить следующие:
void Close() : закрывает считываемый файл и освобождает все ресурсы
int Peek() : возвращает следующий доступный символ, если символов больше нет, то возвращает -1
int Read() : считывает и возвращает следующий символ в численном представлении. Имеет перегруженную версию: Read(char[] array, int index, int count) , где array — массив, куда считываются символы, index — индекс в массиве array, начиная с которого записываются считываемые символы, и count — максимальное количество считываемых символов
Запись в файл с C#
В этом посте представлен обзор некоторых доступных альтернатив записи текста в файл в C#. Решение должно создать новый файл, если он не существует, и обрезать существующий файл перед записью.
1. Использование File Class
Класс File предоставляет несколько статических служебных методов для записи текста в файл. Ниже приведены примеры каждого из этих методов:
⮚ File.WriteAllText() метод
⮚ File.WriteAllLines() метод
⮚ File.WriteAllBytes() метод
Обратите внимание, что вышеупомянутые методы перезаписывают существующий файл. Чтобы добавить текст в файл, используйте любой из AppendAllLines , AppendAllText , или же AppendText() методы.
2. Использование StreamWriter Class
StreamWriter class предоставляет несколько методов для записи в файл. Мы можем использовать его Write() метод записи строки в поток.
В следующем примере показано, как использовать StreamWriter объект для записи данных в новый файл. Dispose() метод вызывается автоматически для сброса и закрытия потока, поскольку средство записи потока объявляется и создается в операторе using.
Сохранить строку (string) в текстовый файл
Быстро сохранить в текстовый файл из Dictionary<string,string>
Привет всем неравнодушным. В словаре Dictionary есть пары ключ/значение примерно следующего.
Из файла считать строки длиной 50 символов и каждую такую строку сохранить в новый текстовый файл
Задачка стоит так. Есть текстовый файл @"D:\Temp\Sample.txt" с строками разной длинны. Нужно с него.
Добавить новую строку в StringGrid таблицу и сохранить в текстовый файл
Нужно добавить нового параллепипеда в таблицу StringGrid (код любые цифры, размеры а б ц и цвет ,и.
Текстовый файл UTF-8 сохранить как текстовый файл ANSI
Есть текстовый файл в UTF-8 Нужно рядом сохранить его же, но в ANSI Как сделать это средствами.