File.OpenWrite(String) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Открывает существующий файл или создает новый файл для записи.
public:
static System::IO::FileStream ^ OpenWrite(System::String ^ path);
public static System.IO.FileStream OpenWrite (string path);
static member OpenWrite : string -> System.IO.FileStream
Public Shared Function OpenWrite (path As String) As FileStream
Параметры
- path
- String
Файл, который нужно открыть для записи.
Возвращаемое значение
Объект с монопольным доступом FileStream в заданном пути с доступом Write.
Исключения
У вызывающего объекта отсутствует необходимое разрешение.
-или-
Параметр path
указывает файл или каталог только для чтения.
платформа .NET Framework и .NET Core версий старше 2.1: path
строка нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().
path
имеет значение null
.
Указанный путь, имя файла или оба значения превышают максимальную длину, заданную в системе.
Указан недопустимый путь (например, он ведет на несопоставленный диск).
Параметр path
задан в недопустимом формате.
Примеры
В следующем примере открывается файл для чтения и записи.
using namespace System;
using namespace System::IO;
using namespace System::Text;
int main()
{
String^ path = "c:\\temp\\MyTest.txt";
// Open the stream and write to it.
{
FileStream^ fs = File::OpenWrite( path );
try
{
array<Byte>^info = (gcnew UTF8Encoding( true ))->
GetBytes( "This is to test the OpenWrite method." );
// Add some information to the file.
fs->Write( info, 0, info->Length );
}
finally
{
if ( fs )
delete (IDisposable^)fs;
}
}
// Open the stream and read it back.
{
FileStream^ fs = File::OpenRead( path );
try
{
array<Byte>^b = gcnew array<Byte>(1024);
UTF8Encoding^ temp = gcnew UTF8Encoding( true );
while ( fs->Read( b, 0, b->Length ) > 0 )
{
Console::WriteLine( temp->GetString( b ) );
}
}
finally
{
if ( fs )
delete(IDisposable^)fs;
}
}
}
using System;
using System.IO;
using System.Text;
class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
// Open the stream and write to it.
using (FileStream fs = File.OpenWrite(path))
{
Byte[] info =
new UTF8Encoding(true).GetBytes("This is to test the OpenWrite method.");
// Add some information to the file.
fs.Write(info, 0, info.Length);
}
// Open the stream and read it back.
using (FileStream fs = File.OpenRead(path))
{
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
while (fs.Read(b,0,b.Length) > 0)
{
Console.WriteLine(temp.GetString(b));
}
}
}
}
open System.IO
open System.Text
let path = @"c:\temp\MyTest.txt"
// Open the stream and write to it.
do
use fs = File.OpenWrite path
let info =
UTF8Encoding(true)
.GetBytes "This is to test the OpenWrite method."
// Add some information to the file.
fs.Write(info, 0, info.Length)
// Open the stream and read it back.
do
use fs = File.OpenRead path
let b = Array.zeroCreate 1024
let temp = UTF8Encoding true
while fs.Read(b, 0, b.Length) > 0 do
printfn $"{temp.GetString b}"
Imports System.IO
Imports System.Text
Public Class Test
Public Shared Sub Main()
Dim path As String = "c:\temp\MyTest.txt"
' Open the stream and write to it.
Using fs As FileStream = File.OpenWrite(path)
Dim info As Byte() = _
New UTF8Encoding(True).GetBytes("This is to test the OpenWrite method.")
' Add some information to the file.
fs.Write(info, 0, info.Length)
End Using
'Open the stream and read it back.
Using fs As FileStream = File.OpenRead(path)
Dim b(1023) As Byte
Dim temp As UTF8Encoding = New UTF8Encoding(True)
Do While fs.Read(b, 0, b.Length) > 0
Console.WriteLine(temp.GetString(b))
Loop
End Using
End Sub
End Class
Комментарии
Этот метод эквивалентен перегрузке FileStream(String, FileMode, FileAccess, FileShare) конструктора с режимом OpenOrCreateфайла, для параметра доступа задано значение Write, а для режима общего доступа — значение None.
Метод OpenWrite открывает файл, если он уже существует для пути к файлу, или создает новый файл, если он не существует. Для существующего файла он не добавляет новый текст к существующему тексту. Вместо этого он перезаписывает существующие символы новыми символами. Если перезаписать более длинную строку (например, "Это тест метода OpenWrite") более короткой строкой (например, "Second run"), файл будет содержать набор строк ("Second runtest of the OpenWrite method").
Параметр path
может указывать относительные или абсолютные сведения о пути. Сведения об относительном пути интерпретируются как относительные относительно текущего рабочего каталога. Чтобы получить текущий рабочий каталог, используйте GetCurrentDirectory метод .
Возвращаемый FileStream объект не поддерживает чтение. Чтобы открыть файл для чтения и записи, используйте .Open
Список распространенных задач ввода-вывода см. в разделе Общие задачи ввода-вывода.