FileInfo.OpenWrite Метод

Определение

Создает доступный только для чтения поток FileStream.Creates a write-only FileStream.

public:
 System::IO::FileStream ^ OpenWrite();
public System.IO.FileStream OpenWrite ();
member this.OpenWrite : unit -> System.IO.FileStream
Public Function OpenWrite () As FileStream

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

Объект FileStream, доступный только для записи, не предназначенный для совместного использования и служащий для нового или существующего файла.A write-only unshared FileStream object for a new or existing file.

Исключения

Путь, указанный при создании экземпляра объекта FileInfo, доступен только для чтения или является каталогом.The path specified when creating an instance of the FileInfo object is read-only or is a directory.

Путь, указанный при создании экземпляра объекта FileInfo, является недопустимым, например находится на несопоставленном диске.The path specified when creating an instance of the FileInfo object is invalid, such as being on an unmapped drive.

Примеры

В следующем примере открывается файл для записи, а затем выполняется чтение из файла.The following example opens a file for writing and then reads from the file.

using namespace System;
using namespace System::IO;
using namespace System::Text;

int main()
{
   String^ path = "c:\\Temp\\MyTest.txt";
   FileInfo^ fi = gcnew FileInfo( path );

   // Open the stream for writing.
   {
      FileStream^ fs = fi->OpenWrite();
      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 = fi->OpenRead();
      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;
      }
   }
}
//This code produces output similar to the following; 
//results may vary based on the computer/file structure/etc.:
//
//This is to test the OpenWrite method.
//
//
//
//
//
//
//
//
//
//
//
//
using System;
using System.IO;
using System.Text;

class Test 
{
    public static void Main() 
    {
        string path = @"c:\Temp\MyTest.txt";
        FileInfo fi = new FileInfo(path);

        // Open the stream for writing.
        using (FileStream fs = fi.OpenWrite()) 
        {
            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 = fi.OpenRead()) 
        {
            byte[] b = new byte[1024];
            UTF8Encoding temp = new UTF8Encoding(true);

            while (fs.Read(b,0,b.Length) > 0) 
            {
                Console.WriteLine(temp.GetString(b));
            }
        }
    }
}
//This code produces output similar to the following; 
//results may vary based on the computer/file structure/etc.:
//
//This is to test the OpenWrite method.
//
//
//
//
//
//
//
//
//
//
//
Imports System.IO
Imports System.Text

Public Class Test
    Public Shared Sub Main()
        Dim path As String = "c:\Temp\MyTest.txt"
        Dim fi As FileInfo = New FileInfo(path)
        Dim fs As FileStream

        ' Open the stream for writing.
        fs = fi.OpenWrite()
        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)
        fs.Close()

        'Open the stream and read it back.
        fs = fi.OpenRead()
        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
        fs.Close()
    End Sub
End Class
'This code produces output similar to the following; 
'results may vary based on the computer/file structure/etc.:
'
'This is to test the OpenWrite method.
'
'
'
'
'
'
'
'
'
'
'
'

Комментарии

Метод OpenWrite открывает файл, если он уже существует для пути к файлу, или создает новый файл, если он не существует.The OpenWrite method opens a file if one already exists for the file path, or creates a new file if one does not exist. Для существующего файла он не добавляет новый текст к существующему тексту.For an existing file, it does not append the new text to the existing text. Вместо этого существующие символы перезаписываются новыми символами.Instead, it overwrites the existing characters with the new characters. Если перезаписать более длинную строку (например, "это тест метода OpenWrite") с более короткой строкой (например, "второй запуск"), файл будет содержать сочетание строк ("второй рунтест метода OpenWrite").If you overwrite a longer string (such as "This is a test of the OpenWrite method") with a shorter string (like "Second run"), the file will contain a mix of the strings ("Second runtest of the OpenWrite method").

Безопасность

FileIOPermission
для чтения и записи файлов.for reading and writing files. Связанные перечисления: Read, WriteAssociated enumerations: Read, Write

Применяется к