.NET Framework クラス ライブラリ
Stream クラス

更新 : 2007 年 11 月

バイト シーケンスのジェネリック ビューを提供します。

名前空間 :  System.IO
アセンブリ :  mscorlib (mscorlib.dll 内)
構文

Visual Basic (宣言)
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public MustInherit Class Stream _
    Inherits MarshalByRefObject _
    Implements IDisposable
Visual Basic (使用法)
Dim instance As Stream
C#
[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Stream : MarshalByRefObject, 
    IDisposable
Visual C++
[SerializableAttribute]
[ComVisibleAttribute(true)]
public ref class Stream abstract : public MarshalByRefObject, 
    IDisposable
J#
/** @attribute SerializableAttribute */ 
/** @attribute ComVisibleAttribute(true) */
public abstract class Stream extends MarshalByRefObject implements IDisposable
JScript
public abstract class Stream extends MarshalByRefObject implements IDisposable
解説

ファイルの作成およびテキストのファイルへの書き込みの例については、「方法 : ファイルにテキストを書き込む」を参照してください。ファイルからのテキストの読み取りの例については、「方法 : ファイルからテキストを読み取る」を参照してください。バイナリ ファイルの読み取りおよび書き込みの例については、「方法 : 新しく作成されたデータ ファイルに対して読み書きする」を参照してください。

ストリームには次の 3 つの基本的な操作が含まれます。

  1. ストリームからの読み込み。読み込みは、ストリームからデータ構造体 (バイト配列など) へのデータ転送です。

  2. ストリームへの書き込み。書き込みは、データ構造体からストリームへのデータ転送です。

  3. ストリームによるシークのサポート。シークとは、ストリーム内の現在位置を問い合せ、変更することです。シーク機能は、ストリームが持つバッキング ストアの種類によって異なります。たとえば、ネットワークのストリームは、現在位置という統一された概念を持たないため、通常はシークをサポートしません。

Stream は、すべてのストリームの抽象基本クラスです。ストリームは、ファイル、入出力デバイス、プロセス間通信パイプ、TCP/IP ソケットなど、バイト シーケンスの抽象化です。Stream クラスとその派生クラスは、これらのさまざまな種類の入出力のジェネリック ビューを提供します。これにより、プログラマはオペレーティング システムや基になるデバイスに固有のディテールを分離します。

基になるデータ ソースやリポジトリによっては、ストリームがこれらの機能の一部だけをサポートする場合もあります。アプリケーションで CanRead プロパティ、CanWrite プロパティ、および CanSeek プロパティを使用することにより、ストリームの機能を問い合わせることができます。

Read メソッドおよび Write メソッドはさまざまな形式でデータの読み取りと書き込みをします。シークをサポートするストリームの場合は、Seek メソッドや SetLength メソッド、および Position プロパティや Length プロパティを使用して、ストリームの現在位置および長さを問い合わせ、変更します。

ストリームの実装によっては、パフォーマンスの向上のために、基になるデータをローカルでバッファリングする場合があります。このようなストリームでは、Flush メソッドを使用して内部バッファをクリアし、すべてのデータが基になるデータ ソースやリポジトリに確実に書き込まれることを保証できます。

Stream に対して Close を呼び出すと、Flush が呼び出されてバッファ内のすべてのデータがフラッシュされます。また、Close によって、内部バッファリングに使用したファイル ハンドル、ネットワーク接続、メモリなどのオペレーティング システム リソースが解放されます。BufferedStream クラスは、読み取りと書き込みのパフォーマンスを向上させるために、バッファリングされたストリームを別のストリームでラッピングする機能を提供します。

バッキング ストア (ビット バケット) なしのストリームが必要な場合は、Null を使用します。

実装元へのメモ :

Stream の派生クラスを実装するときは、Read メソッドおよび Write メソッドの実装を提供する必要があります。非同期メソッド BeginReadEndReadBeginWrite、および EndWrite は、同期メソッド Read および Write を使用して実装します。同様に、独自の Read および Write の実装は、非同期メソッドと共に正常に動作します。ReadByte および WriteByte の既定の実装は、新しい単一要素のバイト配列を作成した後で、独自の Read および Write を呼び出します。Stream から派生させるとき、内部バイト バッファを使用する場合は、内部バッファにアクセスするようにメソッドをオーバーライドすることを強くお勧めします。これにより、パフォーマンスが大幅に向上します。CanReadCanSeekCanWriteFlushLengthPositionSeek、および SetLength も実装する必要があります。

Close メソッドをオーバーライドしないでください。代わりに、Dispose メソッドにすべての Stream クリーンアップ ロジックを組み込みます。詳細については、「Dispose メソッドの実装」を参照してください。

TopicLocation
方法 : ファイルからテキストの読み取りdv_fxfund
方法 : ファイルからテキストを読み取る.NET Framework: プログラミングの基礎
方法 : ファイルからテキストを読み取る.NET Framework : プログラミングの基礎
方法 : ファイルにテキストを書き込む.NET Framework: プログラミングの基礎
方法 : ファイルにテキストを書き込む.NET Framework : プログラミングの基礎
方法 : ファイルへのテキストを書き込みdv_fxfund
継承階層

System..::.Object
  System..::.MarshalByRefObject
    System.IO..::.Stream
      Microsoft.JScript..::.COMCharStream
      System.Data.OracleClient..::.OracleBFile
      System.Data.OracleClient..::.OracleLob
      System.IO..::.BufferedStream
      System.IO.Compression..::.DeflateStream
      System.IO.Compression..::.GZipStream
      System.IO..::.FileStream
      System.IO..::.MemoryStream
      System.IO.Pipes..::.PipeStream
      System.IO..::.UnmanagedMemoryStream
      System.Net.Security..::.AuthenticatedStream
      System.Net.Sockets..::.NetworkStream
      System.Printing..::.PrintQueueStream
      System.Security.Cryptography..::.CryptoStream
スレッド セーフ

この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォーム

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
バージョン情報

.NET Framework

サポート対象 : 3.5、3.0、2.0、1.1、1.0

.NET Compact Framework

サポート対象 : 3.5、2.0、1.0

XNA Framework

サポート対象 : 2.0、1.0
参照

参照

その他の技術情報

タグ :


Page view tracker