Как записать данные в файл c
Перейти к содержимому

Как записать данные в файл c

Как записать данные в файл c

При работе с текстовыми файлами граздо проще работать с данными не как с отдельными символами, а как со строками с помощью функций gets() и puts() .

Функция puts() записывает в файл строку, то есть набор символов, который завершается символом ‘\0’. Она имеет следующий прототип:

Первый параметр функции — записываемая строка, а второй — указатель на файловый поток. В качестве результата функция возвращает неотрицательное целое число. При ошибках в процессе записи возвращается значение EOF .

При записи строки нулевой символ ‘\0’ в файл не записывается.

Функция fgets() считывает из файла одну строку и имеет следующий прототип:

Первый параметр char *s представляет строку, в которую производится считывание. Второй параметр — число n указывает, сколько символов необходимо считывать. И третий параметр представляет файловый поток, из которого производится считывание.

При вызове функция считывает из файла не более n-1 символов. Функция прекращает чтение, когда прочтет n-1 символов или встретит символ переноса строки \n. Все считанные символы записываются в строку s, в том числе символ \n. И также конец каждой строки дописывается нулевой символ ‘\0’.

При успешном завершении функция возвращает указатель s, а при ошибке или достижении конца файла возвращается значение NULL .

Применим функции в программе:

Вначале открываем файл на запись и с помощью вызова fputs(message, fp) записываем в файл искомую строку. Затем открываем файл на чтение и в цикле считываем из файла по 256 символов и выводим их на консоль с помощью вызова fgets(cc, 256, fp) . Когда данные в файле закончатся, функция возвратит NULL, и произойдет выход из цикла.

Другой пример работы с текстовыми файлами — копирование содержимого из одного файла в другой:

Практическое руководство. Запись текста в файл

В этом разделе показаны различные способы записи текста в файл для приложения .NET.

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

StreamWriter содержит методы для синхронной (Write или WriteLine) или асинхронной (WriteAsync и WriteLineAsync) записи в файл.

File предоставляет статические методы для записи текста в файл, такие как WriteAllLines и WriteAllText, или для добавления текста в файл (AppendAllLines, AppendAllText или AppendText).

Path предназначен для использования со строками, содержащими сведения о пути к файлу или каталогу. Он содержит метод Combine; в .NET Core 2.1 и более поздних версиях также есть методы Join и TryJoin, которые позволяют объединять строки для создания пути к файлу или каталогу.

Нижеприведенные примеры демонстрируют минимальный объем необходимого кода. Реальное приложение обычно обеспечивает более надежную проверку ошибок и обработку исключений.

Пример. Синхронная запись текста с помощью StreamWriter

В следующем примере показано, как синхронно записать текст в новый файл с помощью класса StreamWriter по одной строке за раз. Поскольку объект StreamWriter объявляется и создается в инструкции using , вызывается метод Dispose, который автоматически выполняет очистку и закрывает поток.

Если вы хотите увидеть комментарии к коду, переведенные на языки, отличные от английского, сообщите нам на странице обсуждения этой проблемы на сайте GitHub.

Пример. Синхронное добавление текста с помощью StreamWriter

В следующем примере показано, как использовать класс StreamWriter, чтобы синхронно добавить текст в текстовый файл, созданный в первом примере.

Пример. Асинхронная запись текста с помощью StreamWriter

В следующем примере показано, как асинхронно записать текст в новый файл с помощью класса StreamWriter . Вызов метода WriteAsync должен находиться в методе async . Для примера на C# требуется C# 7.1 или более поздней версии, где добавлена поддержка модификатора async для точки входа программы.

Пример. Запись и добавление текста с помощью класса File

В следующем примере показано, как записать текст в новый файл и добавить новые строки текста в тот же файл с помощью класса File . Методы WriteAllText и AppendAllLines открывают и закрывают файл автоматически. Если предоставленный в методе WriteAllText путь уже существует, файл будет перезаписан.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *