File.OpenWrite(String) メソッド

定義

書き込み用に、既存のファイルを開くか新しいファイルを作成します。Opens an existing file or creates a new file for writing.

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

書き込み用に開かれるファイル。The file to be opened for writing.

戻り値

FileStream

指定されたパスに置かれている、非共有の FileStream オブジェクト。アクセス許可は Write です。An unshared FileStream object on the specified path with Write access.

例外

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

- または --or- path が読み取り専用ファイルまたはディレクトリを指定しました。path specified a read-only file or directory.

path は長さ 0 の文字列であるか、空白のみで構成されるか、または InvalidPathChars で定義される 1 つ以上の使用できない文字を含んでいます。path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars.

pathnullです。path is null.

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。The specified path, file name, or both exceed the system-defined maximum length.

指定されたパスが無効です (たとえば、マップされていないドライブにあるなど)。The specified path is invalid, (for example, it is on an unmapped drive).

path の形式が正しくありません。path is in an invalid format.

次の例では、読み取りと書き込み用にファイルを開きます。The following example opens a file for reading and writing.

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));
            }
        }
    }
}
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 います。This method is equivalent to the FileStream(String, FileMode, FileAccess, FileShare) constructor overload with file mode set to OpenOrCreate, the access set to Write, and the share mode set to None.

ファイル 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. 長い文字列 ("This is the OpenWrite method" など) を短い文字列 ("Second run" など) で上書きする場合、ファイルには文字列の組み合わせ ("OpenWrite メソッドの2番目の runtest") が含まれます。If you overwrite a longer string (such as "This is a test of the OpenWrite method") with a shorter string (such as "Second run"), the file will contain a mix of the strings ("Second runtest of the OpenWrite method").

pathパラメーターでは、相対パスまたは絶対パス情報を指定できます。The path parameter may specify relative or absolute path information. 相対パス情報は、現在の作業ディレクトリを基準として解釈されます。Relative path information is interpreted as relative to the current working directory. 現在の作業ディレクトリを取得するには、メソッドを使用し GetCurrentDirectory ます。To obtain the current working directory, use the GetCurrentDirectory method.

返されたは FileStream 読み取りをサポートしていません。The returned FileStream does not support reading. 読み取りと書き込みの両方のファイルを開くには、を使用し Open ます。To open a file for both reading and writing, use Open.

共通 I/O タスクの一覧は、 共通 I/O タスク を参照してください。For a list of common I/O tasks, see Common I/O Tasks.

適用対象

こちらもご覧ください