FileStream クラス
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
同期および非同期の読み取りと書き込みの両方の操作をサポートするファイルの Stream を提供します。
public ref class FileStream : System::IO::Stream
public class FileStream : System.IO.Stream
[System.Runtime.InteropServices.ComVisible(true)]
public class FileStream : System.IO.Stream
type FileStream = class
inherit Stream
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileStream = class
inherit Stream
Public Class FileStream
Inherits Stream
- 継承
- 継承
- 派生
- 属性
次の例では、FileStream コンストラクターの一部を示します。
using namespace System;
using namespace System::IO;
using namespace System::Text;
void AddText( FileStream^ fs, String^ value )
{
array<Byte>^info = (gcnew UTF8Encoding( true ))->GetBytes( value );
fs->Write( info, 0, info->Length );
}
int main()
{
String^ path = "c:\\temp\\MyTest.txt";
// Delete the file if it exists.
if ( File::Exists( path ) )
{
File::Delete( path );
}
//Create the file.
{
FileStream^ fs = File::Create( path );
try
{
AddText( fs, "This is some text" );
AddText( fs, "This is some more text," );
AddText( fs, "\r\nand this is on a new line" );
AddText( fs, "\r\n\r\nThe following is a subset of characters:\r\n" );
for ( int i = 1; i < 120; i++ )
{
AddText( fs, Convert::ToChar( i ).ToString() );
//Split the output at every 10th character.
if ( Math::IEEERemainder( Convert::ToDouble( i ), 10 ) == 0 )
{
AddText( fs, "\r\n" );
}
}
}
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";
// Delete the file if it exists.
if (File.Exists(path))
{
File.Delete(path);
}
//Create the file.
using (FileStream fs = File.Create(path))
{
AddText(fs, "This is some text");
AddText(fs, "This is some more text,");
AddText(fs, "\r\nand this is on a new line");
AddText(fs, "\r\n\r\nThe following is a subset of characters:\r\n");
for (int i=1;i < 120;i++)
{
AddText(fs, Convert.ToChar(i).ToString());
}
}
//Open the stream and read it back.
using (FileStream fs = File.OpenRead(path))
{
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
int readLen;
while ((readLen = fs.Read(b,0,b.Length)) > 0)
{
Console.WriteLine(temp.GetString(b,0,readLen));
}
}
}
private static void AddText(FileStream fs, string value)
{
byte[] info = new UTF8Encoding(true).GetBytes(value);
fs.Write(info, 0, info.Length);
}
}
open System
open System.IO
open System.Text
let addText (fs:FileStream) (value: string) =
let info = UTF8Encoding(true).GetBytes value
fs.Write(info, 0, info.Length);
let path = @"c:\temp\MyTest.txt"
// Delete the file if it exists.
if File.Exists path then
File.Delete path
//Create the file.
do
use fs = File.Create path
addText fs "This is some text"
addText fs "This is some more text,"
addText fs "\r\nand this is on a new line"
addText fs "\r\n\r\nThe following is a subset of characters:\r\n"
for i = 1 to 119 do
Convert.ToChar i
|> string
|> addText fs
do
//Open the stream and read it back.
use fs = File.OpenRead path
let b = Array.zeroCreate 1024
let temp = UTF8Encoding true
let mutable readLen = fs.Read(b,0,b.Length);
while readLen> 0 do
printfn $"{temp.GetString(b,0,readLen)}"
readLen <- fs.Read(b,0,b.Length)
Imports System.IO
Imports System.Text
Public Class Test
Public Shared Sub Main()
Dim path As String = "c:\temp\MyTest.txt"
' Delete the file if it exists.
If File.Exists(path) Then
File.Delete(path)
End If
'Create the file.
Dim fs As FileStream = File.Create(path)
AddText(fs, "This is some text")
AddText(fs, "This is some more text,")
AddText(fs, Environment.NewLine & "and this is on a new line")
AddText(fs, Environment.NewLine & Environment.NewLine)
AddText(fs, "The following is a subset of characters:" & Environment.NewLine)
Dim i As Integer
For i = 1 To 120
AddText(fs, Convert.ToChar(i).ToString())
Next
fs.Close()
'Open the stream and read it back.
fs = 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
fs.Close()
End Sub
Private Shared Sub AddText(ByVal fs As FileStream, ByVal value As String)
Dim info As Byte() = New UTF8Encoding(True).GetBytes(value)
fs.Write(info, 0, info.Length)
End Sub
End Class
次の例は、ファイルに非同期的に書き込む方法を示しています。 このコードは、UserInput という名前の TextBlock と、Button_Clickという名前の Click イベント ハンドラーにフックされたボタンを持つ WPF アプリで実行されます。 ファイル パスは、コンピューター上に存在するファイルに変更する必要があります。
using System;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.IO;
namespace WpfApplication1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private async void Button_Click(object sender, RoutedEventArgs e)
{
UnicodeEncoding uniencoding = new UnicodeEncoding();
string filename = @"c:\Users\exampleuser\Documents\userinputlog.txt";
byte[] result = uniencoding.GetBytes(UserInput.Text);
using (FileStream SourceStream = File.Open(filename, FileMode.OpenOrCreate))
{
SourceStream.Seek(0, SeekOrigin.End);
await SourceStream.WriteAsync(result, 0, result.Length);
}
}
}
}
Imports System.IO
Imports System.Text
Class MainWindow
Private Async Sub Button_Click(sender As Object, e As RoutedEventArgs)
Dim uniencoding As UnicodeEncoding = New UnicodeEncoding()
Dim filename As String = "c:\Users\exampleuser\Documents\userinputlog.txt"
Dim result As Byte() = uniencoding.GetBytes(UserInput.Text)
Using SourceStream As FileStream = File.Open(filename, FileMode.OpenOrCreate)
SourceStream.Seek(0, SeekOrigin.End)
Await SourceStream.WriteAsync(result, 0, result.Length)
End Using
End Sub
End Class
この API の詳細については、「FileStreamの補足 API 解説
File |
古い.
古い.
古い.
指定した読み取り/書き込みアクセス許可を使用して、指定したファイル ハンドルの FileStream クラスの新しいインスタンスを初期化します。 |
File |
古い.
古い.
古い.
指定した読み取り/書き込みアクセス許可と |
File |
古い.
古い.
古い.
指定した読み取り/書き込みアクセス許可、 |
File |
古い.
古い.
古い.
指定した読み取り/書き込みアクセス許可、 |
File |
指定した読み取り/書き込みアクセス許可を使用して、指定したファイル ハンドルの FileStream クラスの新しいインスタンスを初期化します。 |
File |
指定した読み取り/書き込みアクセス許可とバッファー サイズを使用して、指定したファイル ハンドルの FileStream クラスの新しいインスタンスを初期化します。 |
File |
指定した読み取り/書き込みアクセス許可、バッファー サイズ、および同期または非同期の状態を使用して、指定したファイル ハンドルの FileStream クラスの新しいインスタンスを初期化します。 |
File |
指定したパスと作成モードを使用して、FileStream クラスの新しいインスタンスを初期化します。 |
File |
指定したパス、作成モード、および読み取り/書き込みアクセス許可を使用して、FileStream クラスの新しいインスタンスを初期化します。 |
File |
指定したパス、作成モード、読み取り/書き込みアクセス許可、および共有アクセス許可を使用して、FileStream クラスの新しいインスタンスを初期化します。 |
File |
指定したパス、作成モード、読み取り/書き込みおよび共有のアクセス許可、バッファー サイズを使用して、FileStream クラスの新しいインスタンスを初期化します。 |
File |
指定したパス、作成モード、読み取り/書き込みおよび共有のアクセス許可、バッファー サイズ、および同期または非同期の状態を使用して、FileStream クラスの新しいインスタンスを初期化します。 |
File |
指定したパス、作成モード、読み取り/書き込みおよび共有のアクセス許可を使用して、FileStream クラスの新しいインスタンスを初期化します。他の FileStream へのアクセスは、同じファイル、バッファー サイズ、および追加のファイル オプションに対して持つことができます。 |
File |
指定したパス、作成モード、アクセス権と共有アクセス許可、バッファー サイズ、および追加のファイル オプションを使用して、FileStream クラスの新しいインスタンスを初期化します。 |
File |
指定したパス、作成モード、アクセス権と共有アクセス許可、バッファー サイズ、追加のファイル オプション、アクセス制御、監査セキュリティを使用して、FileStream クラスの新しいインスタンスを初期化します。 |
File |
指定したパス、作成モード、読み取り/書き込みおよび共有アクセス許可、バッファー サイズ、追加のファイル オプション、事前割り当てサイズ、および他の FileStreams が同じファイルに対して持つアクセス権を使用して、FileStream クラスの新しいインスタンスを初期化します。 |
Can |
現在のストリームが読み取りをサポートしているかどうかを示す値を取得します。 |
Can |
現在のストリームがシークをサポートしているかどうかを示す値を取得します。 |
Can |
現在のストリームがタイムアウトできるかどうかを決定する値を取得します。 (継承元 Stream) |
Can |
現在のストリームが書き込みをサポートしているかどうかを示す値を取得します。 |
Handle |
古い.
古い.
古い.
現在の |
Is |
|
Length |
ストリームの長さをバイト単位で取得します。 |
Name |
|
Position |
このストリームの現在位置を取得または設定します。 |
Read |
ストリームがタイムアウトするまでの読み取りを試行する時間を決定する値をミリ秒単位で取得または設定します。 (継承元 Stream) |
Safe |
現在の FileStream オブジェクトがカプセル化するファイルのオペレーティング システム ファイル ハンドルを表す SafeFileHandle オブジェクトを取得します。 |
Write |
ストリームがタイムアウトするまでの書き込みを試行する時間を決定する値をミリ秒単位で取得または設定します。 (継承元 Stream) |
Begin |
非同期読み取り操作を開始します。 代わりに ReadAsync(Byte[], Int32, Int32, CancellationToken) を使用することを検討してください。 |
Begin |
非同期読み取り操作を開始します。 (代わりに ReadAsync(Byte[], Int32, Int32) を使用することを検討してください)。 (継承元 Stream) |
Begin |
非同期書き込み操作を開始します。 代わりに WriteAsync(Byte[], Int32, Int32, CancellationToken) を使用することを検討してください。 |
Begin |
非同期書き込み操作を開始します。 (代わりに WriteAsync(Byte[], Int32, Int32) を使用することを検討してください)。 (継承元 Stream) |
Close() |
現在のストリームを閉じ、現在のストリームに関連付けられているリソース (ソケットやファイル ハンドルなど) を解放します。 |
Close() |
現在のストリームを閉じ、現在のストリームに関連付けられているリソース (ソケットやファイル ハンドルなど) を解放します。 このメソッドを呼び出す代わりに、ストリームが適切に破棄されていることを確認します。 (継承元 Stream) |
Copy |
現在のストリームからバイトを読み取り、別のストリームに書き込みます。 どちらのストリーム位置も、コピーされたバイト数だけ進みます。 (継承元 Stream) |
Copy |
同期および非同期の読み取りと書き込みの両方の操作をサポートするファイルの Stream を提供します。 |
Copy |
現在のストリームからバイトを読み取り、指定されたバッファー サイズを使用して別のストリームに書き込みます。 どちらのストリーム位置も、コピーされたバイト数だけ進みます。 (継承元 Stream) |
Copy |
現在のストリームからバイトを非同期に読み取り、別のストリームに書き込みます。 どちらのストリーム位置も、コピーされたバイト数だけ進みます。 (継承元 Stream) |
Copy |
現在のストリームからバイトを非同期に読み取り、指定されたキャンセル トークンを使用して別のストリームに書き込みます。 どちらのストリーム位置も、コピーされたバイト数だけ進みます。 (継承元 Stream) |
Copy |
現在のストリームからバイトを非同期に読み取り、指定されたバッファー サイズを使用して別のストリームに書き込みます。 どちらのストリーム位置も、コピーされたバイト数だけ進みます。 (継承元 Stream) |
Copy |
指定したバッファー サイズとキャンセル トークンを使用して、現在のファイル ストリームからバイトを非同期に読み取り、別のストリームに書き込みます。 |
Copy |
指定したバッファー サイズとキャンセル トークンを使用して、現在のストリームからバイトを非同期に読み取り、別のストリームに書き込みます。 どちらのストリーム位置も、コピーされたバイト数だけ進みます。 (継承元 Stream) |
Create |
リモート オブジェクトとの通信に使用されるプロキシの生成に必要なすべての関連情報を含むオブジェクトを作成します。 (継承元 MarshalByRefObject) |
Create |
古い.
古い.
古い.
WaitHandle オブジェクトを割り当てます。 (継承元 Stream) |
Dispose() |
Streamで使用されているすべてのリソースを解放します。 (継承元 Stream) |
Dispose(Boolean) |
FileStream によって使用されるアンマネージ リソースを解放し、必要に応じてマネージド リソースを解放します。 |
Dispose |
FileStreamによって使用されるアンマネージ リソースを非同期的に解放します。 |
Dispose |
Streamによって使用されるアンマネージ リソースを非同期的に解放します。 (継承元 Stream) |
End |
保留中の非同期読み取り操作が完了するまで待機します。 (代わりに ReadAsync(Byte[], Int32, Int32, CancellationToken) を使用することを検討してください)。 |
End |
保留中の非同期読み取りが完了するまで待機します。 (代わりに ReadAsync(Byte[], Int32, Int32) を使用することを検討してください)。 (継承元 Stream) |
End |
非同期書き込み操作を終了し、I/O 操作が完了するまでブロックします。 (代わりに WriteAsync(Byte[], Int32, Int32, CancellationToken) を使用することを検討してください)。 |
End |
非同期書き込み操作を終了します。 (代わりに WriteAsync(Byte[], Int32, Int32) を使用することを検討してください)。 (継承元 Stream) |
Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
Finalize() |
ガベージ コレクターが |
Flush() |
このストリームのバッファーをクリアし、バッファー内のデータをファイルに書き込みます。 |
Flush(Boolean) |
このストリームのバッファーをクリアし、バッファー内のデータをファイルに書き込み、すべての中間ファイル バッファーもクリアします。 |
Flush |
このストリームのすべてのバッファーを非同期的にクリアし、バッファー内のデータを基になるデバイスに書き込みます。 (継承元 Stream) |
Flush |
このストリームのすべてのバッファーを非同期的にクリアし、バッファー内のデータを基になるデバイスに書き込み、取り消し要求を監視します。 |
Flush |
このストリームのすべてのバッファーを非同期的にクリアし、バッファー内のデータを基になるデバイスに書き込み、取り消し要求を監視します。 (継承元 Stream) |
Get |
現在の FileStream オブジェクトによって記述されたファイルのアクセス制御リスト (ACL) エントリをカプセル化する FileSecurity オブジェクトを取得します。 |
Get |
既定のハッシュ関数として機能します。 (継承元 Object) |
Get |
古い.
このインスタンスの有効期間ポリシーを制御する現在の有効期間サービス オブジェクトを取得します。 (継承元 MarshalByRefObject) |
Get |
現在のインスタンスの Type を取得します。 (継承元 Object) |
Initialize |
古い.
このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。 (継承元 MarshalByRefObject) |
Lock(Int64, Int64) |
他のプロセスが FileStreamに対して読み取りまたは書き込みを行わないようにします。 |
Memberwise |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
Memberwise |
現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。 (継承元 MarshalByRefObject) |
Object |
古い.
Contractのサポートを提供します。 (継承元 Stream) |
Read(Byte[], Int32, Int32) |
ストリームからバイト ブロックを読み取り、特定のバッファーにデータを書き込みます。 |
Read(Span<Byte>) |
現在のファイル ストリームからバイト シーケンスを読み取り、読み取ったバイト数だけファイル ストリーム内の位置を進めます。 |
Read(Span<Byte>) |
派生クラスでオーバーライドされると、現在のストリームからバイトシーケンスを読み取り、読み取られたバイト数だけストリーム内の位置を進めます。 (継承元 Stream) |
Read |
現在のストリームからバイト シーケンスを非同期に読み取り、ストリーム内の位置を読み取ったバイト数だけ進めます。 (継承元 Stream) |
Read |
現在のファイル ストリームからバイト シーケンスを非同期に読み取り、指定したオフセットから始まるバイト配列に書き込み、読み取ったバイト数だけファイル ストリーム内の位置を進め、取り消し要求を監視します。 |
Read |
現在のストリームからバイト シーケンスを非同期に読み取り、読み取ったバイト数だけストリーム内の位置を進め、取り消し要求を監視します。 (継承元 Stream) |
Read |
現在のファイル ストリームからバイト シーケンスを非同期に読み取り、メモリ領域に書き込み、読み取ったバイト数だけファイル ストリーム内の位置を進め、キャンセル要求を監視します。 |
Read |
現在のストリームからバイト シーケンスを非同期に読み取り、読み取ったバイト数だけストリーム内の位置を進め、取り消し要求を監視します。 (継承元 Stream) |
Read |
現在のストリームから少なくともバイト数を読み取り、読み取ったバイト数だけストリーム内の位置を進めます。 (継承元 Stream) |
Read |
現在のストリームから少なくとも最小バイト数を非同期に読み取り、読み取ったバイト数だけストリーム内の位置を進め、キャンセル要求を監視します。 (継承元 Stream) |
Read |
ファイルからバイトを読み取り、読み取り位置を 1 バイト進めます。 |
Read |
現在のストリーム |
Read |
現在のストリームからバイトを読み取り、 |
Read |
現在のストリーム |
Read |
現在のストリームからバイトを非同期に読み取り、 |
Seek(Int64, Seek |
このストリームの現在位置を指定された値に設定します。 |
Set |
FileSecurity オブジェクトによって記述されたアクセス制御リスト (ACL) エントリを、現在の FileStream オブジェクトによって記述されたファイルに適用します。 |
Set |
このストリームの長さを指定された値に設定します。 |
To |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
Unlock(Int64, Int64) |
以前にロックされていたファイルのすべてまたは一部への他のプロセスによるアクセスを許可します。 |
Write(Byte[], Int32, Int32) |
バイト ブロックをファイル ストリームに書き込みます。 |
Write(Read |
読み取り専用スパンから現在のファイル ストリームにバイト シーケンスを書き込み、書き込まれたバイト数だけこのファイル ストリーム内の現在の位置を進めます。 |
Write(Read |
派生クラスでオーバーライドされると、現在のストリームにバイト シーケンスを書き込み、書き込まれたバイト数だけこのストリーム内の現在の位置を進めます。 (継承元 Stream) |
Write |
現在のストリームにバイト シーケンスを非同期に書き込み、書き込まれたバイト数だけこのストリーム内の現在位置を進めます。 (継承元 Stream) |
Write |
現在のストリームにバイトシーケンスを非同期に書き込み、書き込まれたバイト数だけこのストリーム内の現在位置を進め、キャンセル要求を監視します。 |
Write |
現在のストリームにバイトシーケンスを非同期に書き込み、書き込まれたバイト数だけこのストリーム内の現在位置を進め、キャンセル要求を監視します。 (継承元 Stream) |
Write |
メモリ領域から現在のファイル ストリームにバイトシーケンスを非同期に書き込み、書き込まれたバイト数だけこのファイル ストリーム内の現在位置を進め、キャンセル要求を監視します。 |
Write |
現在のストリームにバイトシーケンスを非同期に書き込み、書き込まれたバイト数だけこのストリーム内の現在位置を進め、キャンセル要求を監視します。 (継承元 Stream) |
Write |
ファイル ストリーム内の現在位置にバイトを書き込みます。 |
IDisposable. |
Streamで使用されているすべてのリソースを解放します。 (継承元 Stream) |
Get |
ファイルのセキュリティ情報を返します。 |
Set |
既存のファイルのセキュリティ属性を変更します。 |
Copy |
キャンセル トークンを使用して、Stream からバイトを非同期に読み取り、指定した PipeWriterに書き込みます。 |
As |
.NET for Windows ストア アプリのマネージド ストリームを Windows ランタイムの入力ストリームに変換します。 |
As |
.NET for Windows ストア アプリのマネージド ストリームを Windows ランタイムの出力ストリームに変換します。 |
As |
指定したストリームをランダム アクセス ストリームに変換します。 |
Configure |
非同期破棄から返されるタスクの待機を実行する方法を構成します。 |
製品 | バージョン |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
- File
- FileAccess
- FileMode
- FileShare
- ファイルおよびストリーム I/O
- 方法: ファイル からテキストを読み取る
- 方法: ファイル にテキストを書き込む
- 方法: 新しく作成されたデータ ファイルの読み取りと書き込み
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。