FileStreamクラス
https://docs.microsoft.com/zh-cn/dotnet/api/system.io.filestream?view=netframework-4.8
名前空間:System.IO
アセンブリ:mscorlib.dll
ストリームをファイルに提供し、同期読み取りおよび書き込み操作と非同期読み取りおよび書き込み操作の両方をサポートします 。
コメント
FileStream クラスを使用 して、ファイルシステムのファイルの読み取り、書き込み、オープン、クローズを行います。パイプ、標準入力、標準出力など、ファイルに関連する他のオペレーティングシステムハンドルを操作することもできます。あなたは使用することができます 読み取り、書き込み、CopyToのと フラッシュ 同期、または使用する方法を ReadAsyncを、WriteAsync、copyToAsyncと FlushAsync メソッドを実行する非同期操作を。非同期メソッドを使用して、メインスレッドをブロックせずにリソースを集中的に使用するファイル操作を実行します。このパフォーマンスの考慮事項は、Windows 8.xアプリストアアプリケーションまたはデスクトップアプリケーションで時間のかかるストリーム操作がUIスレッドをブロックし、アプリケーションが機能していないように見える場合に特に重要です。 FileStreamは 入出力をバッファリングしてパフォーマンスを向上させます。
重要な
このタイプは、IDisposable インターフェイスを実装し ます。タイプを使用した後、タイプを直接または間接的に解放する必要があります。型を直接解放するには、Disposetry
/ブロックでそのcatch
メソッドを 呼び出します 。型を間接的に解放するには、 言語構成体using
(C#の場合)または Using
(Visual Basicの場合)を使用します。詳細について は、IDisposableインターフェイスのトピックの「IDisposableを実装するオブジェクトの使用」を参照してください 。
IsAsync プロパティは、ファイルハンドルが非同期で開かれたかどうかを検出します。持つ isAsync
、useAsync
または options
パラメータのコンストラクタを作成 するFileStream インスタンスクラスを、この値を指定することができます。true
属性が指定されている場合 、ストリームは重複するi / oを使用して、ファイル操作を非同期で実行します。ただし、true
IsAsync 属性 を指定してReadAsync、WriteAsync、または CopyToAsyncメソッドを呼び出す 必要はありません 。場合 false
のisAsync 場合特性を非同期読み取りおよび書き込み操作を呼び出し、UIスレッドは依然としてブロックされませんが、動作O実際のI /同期して行われます。
Seek メソッドは、ファイルへのランダムアクセスをサポートします。 Seek では、読み取り/書き込み位置をファイル内の任意の位置に移動できます。これは、バイトオフセットによってポイントパラメータを参照することによって実現されます。バイトオフセットは、検索参照ポイントを基準にしています。これは、ベースファイルの開始、現在の位置、または終了であり、SeekOriginによって 列挙される3つのメンバーによって表され ます。
このクラスを使用する場合、まずこのクラスのインスタンス、つまりオブジェクトを定義し、このオブジェクトのプロパティとメソッドを使用してファイルの読み取りと書き込みを行う必要があります。ファイルストリームオブジェクトは次のように定義されます 。Dim
オブジェクトAs FileStream
オブジェクト= NewFileStream(パス、モード、アクセス、共有、バッファーサイズ、isAsync)
ファイルストリームコンストラクターの各パラメーター値の意味は次のとおりです。
- パス、ファイルパス名:
- モード、FileMode列挙型クラスプラウ、ファイルオープンモード。
- FileAccess列挙型のAccessは、FileStreamオブジェクトがファイルにアクセスする方法を決定します。
- 共有、FileShare列挙型、ファイル共有方法。
- buffersize、必要なバッファーは小さいです。
- isAsync、同期または非同期の入力および出力。
FileStreamのコンストラクターは複数回オーバーロードすることができ、新しいファイルストリームオブジェクトを作成するときは、最初のいくつかのパラメーターのみを指定できます。
FileMode列挙型の値は次のとおりです。
- ファイルの最後に追加、追加します。
- ファイルを作成、作成します。上書きできます。
- CrcateNew、新しいファイルを作成します。
ファイルを開いて開きます。
- OpenOrCreate、ファイルを開き、ファイルが存在しない場合は作成します。
FileAccess列挙型の値は次のとおりです。
- 読み取り、ファイルへのアクセスはファイルを読み取ることです。
- ReadWrite、ファイルの読み取りと書き込み。
- 書き込み、ファイルの書き込み。
FileShare列挙型の値は次のとおりです。
- 読み取り。他のユーザーがファイルを読み取ってアクセスできるようにします。
- ReadWrite。他のユーザーがファイルへの読み取りおよび書き込みアクセスを許可します。
- 書き込み。他のユーザーがファイルに書き込むことができます。
ファイルストリームオブジェクトを定義した後、Readメソッドでファイルの内容を読み取り、Writeメソッドでファイルの内容を書き換えることができます。ReadメソッドとWriteメソッドには3つのパラメーターがあります。最初のパラメーターは配列で、ファイルから読み取られたデータまたはファイルに書き込まれた配列を表します。2番目のパラメーターは読み取りまたは書き込みの開始位置を表し、3番目のパラメーターはこの操作は、いくつかのデータを処理する必要があります。
Closeメソッドを使用してファイルを閉じます。
モジュールModule1
Sub Main()
testStream()
Console.Read()
End Sub
Private Sub testStream()
Dim DataWrite(10)As Byte
Dim DataRead(10)As Byte
Dim i As Integer
For i = 0 To 10
DataWrite(i)= i * 3
Next
Dim testFs As IO.FileStream
testFs = New IO.FileStream( "J:\ test \ Stream.txt"、IO.FileMode.OpenOrCreate、IO.FileAccess.Write)
testFs.Write(DataWrite、
0、11 )testFs.Close( )
testFs = New IO.FileStream( "J:\ test \ Stream.txt"、IO.FileMode.Open、IO.FileAccess.Read)
testFs.Read(DataRead、
0、11 )testFs.Close()
For i = 0 To 10
Console.WriteLine(DataRead(i))
Next
End Sub
End Module