この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

FileStream.Read メソッド (Byte[], Int32, Int32)

 

公開日: 2016年10月

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

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

public override int Read(
	byte[] array,
	int offset,
	int count
)

パラメーター

array
Type: System.Byte[]

このメソッドが戻るとき、指定したバイト配列の offset から (offset + count - 1)) までの値が、現在のソースから読み取られたバイトに置き換えられます。

offset
Type: System.Int32

読み取られるバイトが配置される array 内のバイト オフセット。

count
Type: System.Int32

読み取る最大バイト数。

戻り値

Type: System.Int32

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

Exception Condition
ArgumentNullException

arraynull です。

ArgumentOutOfRangeException

offset または count が負の値です。

NotSupportedException

ストリームは読み取りをサポートしません。

IOException

I/O エラーが発生しました。

ArgumentException

offsetcount は、array で使用できない範囲について説明しています。

ObjectDisposedException

ストリームが閉じた後でメソッドが呼び出されました。

このメソッドは Readです。

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

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

使用 BinaryReader プリミティブ データ型を読み取るためです。

読み取り操作を実行しているスレッドを中断しません。 アプリケーションは、正常に実行するスレッドがブロックされた後に見えますが、中断されたときは、アプリケーションのパフォーマンスと信頼性を短縮できます。

一般的なファイルおよびディレクトリの操作の一覧は、次を参照してください。 共通 I/O タスクします。

次の例からの内容を読み取ります、 FileStream 、別に書き込みます FileStreamします。

using System;
using System.IO;

class Test
{

public static void Main()
{
    // Specify a file to read from and to create.
    string pathSource = @"c:\tests\source.txt";
    string pathNew = @"c:\tests\newfile.txt";

    try
    {

        using (FileStream fsSource = new FileStream(pathSource,
            FileMode.Open, FileAccess.Read))
        {

            // Read the source file into a byte array.
            byte[] bytes = new byte[fsSource.Length];
            int numBytesToRead = (int)fsSource.Length;
            int numBytesRead = 0;
            while (numBytesToRead > 0)
            {
                // Read may return anything from 0 to numBytesToRead.
                int n = fsSource.Read(bytes, numBytesRead, numBytesToRead);

                // Break when the end of the file is reached.
                if (n == 0)
                    break;

                numBytesRead += n;
                numBytesToRead -= n;
            }
             numBytesToRead = bytes.Length;

            // Write the byte array to the other FileStream.
            using (FileStream fsNew = new FileStream(pathNew,
                FileMode.Create, FileAccess.Write))
            {
                fsNew.Write(bytes, 0, numBytesToRead);
            }
        }
    }
    catch (FileNotFoundException ioEx)
    {
        Console.WriteLine(ioEx.Message);
    }
}
}

ユニバーサル Windows プラットフォーム
10 以降で使用可能
.NET Framework
1.1 以降で使用可能
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
トップに戻る
表示: