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

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

File. Create Метод

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Создает или перезаписывает файл в указанном пути.

Перегрузки

Создает или перезаписывает файл в указанном пути.

Создает или перезаписывает файл по заданному пути с указанием размер буфера.

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

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

Create(String)

Создает или перезаписывает файл в указанном пути.

Параметры

Путь и имя создаваемого файла.

Возвращаемое значение

FileStream, обеспечивающий доступ для чтения и записи к файлу, указанному в path .

Исключения

У вызывающего объекта отсутствует необходимое разрешение.

-или- Параметр path указывает файл, доступный только для чтения.

-или- path указывает файл, который скрыт.

платформа .NET Framework и версии .NET Core старше 2.1: path это строка нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().

path имеет значение null .

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

Указан недопустимый путь (например, он ведет на несопоставленный диск).

Ошибка ввода-вывода при создании файла.

Параметр path задан в недопустимом формате.

Примеры

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

Комментарии

Объект, FileStream созданный этим методом, имеет значение Noneпо умолчаниюFileShare; никакие другие процессы или код не смогут получить доступ к созданному файлу, пока исходный дескриптор файла не будет закрыт.

Этот метод эквивалентен перегрузке Create(String, Int32) метода, используя размер буфера по умолчанию в 4096 байт.

Параметр path может указывать относительные или абсолютные сведения о пути. Относительные сведения о пути интерпретируются относительно текущего рабочего каталога. Сведения о получении текущего рабочего каталога см. в разделе GetCurrentDirectory.

Если указанный файл не существует, он создается; Если он существует и не доступен только для чтения, содержимое перезаписывается.

По умолчанию всем пользователям предоставляется полный доступ на чтение и запись к новым файлам. Файл открывается с доступом на чтение и запись и должен быть закрыт, прежде чем его можно будет открыть другим приложением.

Список распространенных задач ввода-вывода см. в разделе "Общие задачи ввода-вывода".

Как перезаписывать файл 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?

Итак, я открываю текст.txt файл и пытается перезаписать каждую строку с желаемым выходом в тот же текстовый файл. В цикле while я устанавливаю первый символ в каждой строке на «x». Я также устанавливаю переменную «line» равной единице, потому что если она включена первая строка, я хочу перемотать к началу файла, чтобы перезаписать в начале, а не в конце файла. Затем строка увеличивается, поэтому она пропустит перемотку для следующей итерации и должна продолжать перезаписывать 2-ю и 3-ю строки. Он отлично работает для первой линии.

у кого-нибудь есть решения? Кстати, я широко исследовал это как на stackoverflow, так и на других сайтах, и не повезло. Вот мой код, и мой вывод также ниже:

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

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