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, так и на других сайтах, и не повезло. Вот мой код, и мой вывод также ниже: