File.OpenWrite(String) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
開啟現有檔案或建立新檔案,以進行寫入。
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 物件。
例外狀況
.NET Framework 和 2.1 之前的 .NET Core 版本: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 方法的測試」,) 較短的字串 (例如「第二次執行」) ,則檔案會包含字元串混合 (「OpenWrite 方法的第二個 Runtest」) 。
參數 path
可以指定相對或絕對路徑資訊。 相對路徑資訊會解譯為相對於目前工作目錄。 若要取得目前的工作目錄,請使用 GetCurrentDirectory 方法。
傳 FileStream 回的 不支援讀取。 若要開啟檔案以讀取與寫入。 請使用 Open。
如需一般 I/O 工作的清單,請參閱 一般 I/O 工作。