次の方法で共有


FileStream.Read メソッド

ストリームからバイトのブロックを読み取り、そのデータを特定のバッファに書き込みます。

Overrides Public Function Read( _
   <InteropServices.In(), _
   Out()> ByVal array() As Byte, _   ByVal offset As Integer, _   ByVal count As Integer _) As Integer
[C#]
public override int Read(   [   In,   Out] byte[] array,intoffset,intcount);
[C++]
public: int Read(   [   In,   Out] unsigned chararray __gc[],intoffset,intcount);
[JScript]
public override function Read(
   array : Byte[],offset : int,count : int) : int;

パラメータ

  • array
    このメソッドが戻るとき、指定したバイト配列の offset から (offset + count - 1) までの値が、現在のソースから読み取られたバイトに置き換えられます。
  • offset
    読み取りの開始位置を示す array 内のバイト オフセット。
  • count
    読み取る最大バイト数。

戻り値

バッファに読み取られた合計文字数。要求しただけのバイト数を読み取れなかった場合、この値は要求したバイト数より小さくなります。ストリームの末尾に到達した場合は 0 になることがあります。

例外

例外の種類 条件
ArgumentNullException array が null 参照 (Visual Basic では Nothing) です。
ArgumentOutOfRangeException offset または count が負の値です。
NotSupportedException ストリームが読み取りをサポートしていません。
IOException I/O エラーが発生しました。
ArgumentException offsetcountarray の無効な範囲を示しています。
ObjectDisposedException ストリームが閉じられた後でメソッドが呼び出されました。

解説

このメソッドは、 Read をオーバーライドします。

offset パラメータは読み取りを開始する位置の array のバイトのオフセット (バッファ インデックス) を指定し、 count パラメータはこのストリームから読み取るバイトの最大数を指定します。戻り値は、実際に読み取ったバイト数であり、ストリームの末尾に到達している場合は 0 です。読み取り操作が正常に終了した場合、ストリームの現在位置は読み取ったバイト数だけ進みます。例外が発生した場合、ストリームの現在位置は変更されません。

Read メソッドは、ストリームの末尾に到達した後に必ず 0 を返します。それ以外の場合、 Read は戻り値を返す前に常にストリームから少なくとも 1 バイトを読み取ります。 Read の呼び出し時に利用できるデータがストリームにない場合、メソッドは少なくとも 1 バイトのデータを返すまでブロックします。メソッドの実装は、ストリームの末尾に到達していない場合でも、要求された数に満たないバイトを返すようにすることができます。

プリミティブ データ型を読み取る場合は BinaryReader を使用します。

このメソッドの使用例については、以下の「使用例」を参照してください。その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します。

実行するタスク 参考例があるトピック
テキスト ファイルを作成する。 ファイルへのテキストの書き込み
テキスト ファイルに書き込む。 ファイルへのテキストの書き込み
テキスト ファイルから読み取る。 ファイルからのテキストの読み取り
テキストをファイルに追加する。 ログ ファイルのオープンと追加

File.AppendText

FileInfo.AppendText

ファイルの名前を変更、またはファイルを移動する。 File.Move

FileInfo.MoveTo

ファイルをコピーする。 File.Copy

FileInfo.CopyTo

ファイルのサイズを取得する。 FileInfo.Length
ファイルの属性を取得する。 File.GetAttributes
ファイルの属性を設定する。 File.SetAttributes
ファイルが存在するかどうかを判別する。 File.Exists
バイナリ ファイルから読み取る。 新しく作成したデータ ファイルの読み取りと書き込み
バイナリ ファイルに書き込む。 新しく作成したデータ ファイルの読み取りと書き込み
ディレクトリを作成する。 Directory.CreateDirectory

Directory.CreateDirectory

使用例

[Visual Basic, C#, C++] 既存ファイルから指定したバイト数を読み取る例を次に示します。

 
Imports System
Imports System.IO

Class FSRead

    Public Shared Sub Main()
        'Create a file stream from an existing file.
        Dim fi As New FileInfo("c:\csc.txt")
        Dim fs As FileStream = fi.OpenRead()

        'Read 100 bytes into an array from the specified file.
        Dim nBytes As Integer = 100
        Dim ByteArray(nBytes) As Byte
        Dim nBytesRead As Integer = fs.Read(ByteArray, 0, nBytes)
        Console.WriteLine("{0} bytes have been read from the specified file.", nBytesRead.ToString())
    End Sub 'Main
End Class 'FSRead

[C#] 
using System;
using System.IO;

class FSRead
{
    public static void Main()
    {
        //Create a file stream from an existing file.
        FileInfo fi=new FileInfo("c:\\csc.txt");       
        FileStream fs=fi.OpenRead();
        
        //Read 100 bytes into an array from the specified file.
        int nBytes=100;
        byte[] ByteArray=new byte[nBytes];
        int nBytesRead=fs.Read(ByteArray, 0, nBytes);
        Console.WriteLine("{0} bytes have been read from the specified file.", nBytesRead.ToString());
    }
}

[C++] 
#using <mscorlib.dll>

using namespace System;
using namespace System::IO;

int main() {
    //Create a file stream from an existing file.
    FileInfo* fi = new FileInfo(S"c:\\csc.txt");       
    FileStream* fs = fi->OpenRead();

    //Read 100 bytes into an array from the specified file.
    int nBytes=100;
    Byte ByteArray[] = new Byte[nBytes];
    int nBytesRead = fs->Read(ByteArray, 0, nBytes);
    Console::WriteLine(S"{0} bytes have been read from the specified file.", __box(nBytesRead));
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

FileStream クラス | FileStream メンバ | System.IO 名前空間 | 入出力操作 | ファイルからのテキストの読み取り | ファイルへのテキストの書き込み