FileStream.ReadByte メソッド
ファイルからバイトを読み取り、読み取り位置を 1 バイト進めます。
Overrides Public Function ReadByte() As Integer
[C#]
public override int ReadByte();
[C++]
public: int ReadByte();
[JScript]
public override function ReadByte() : int;
戻り値
int にキャストしたバイト。またはストリームの末尾から読み取る場合は -1。
例外
例外の種類 | 条件 |
---|---|
NotSupportedException | 現在のストリームは読み取りをサポートしていません。 |
ObjectDisposedException | 現在のストリームが閉じています。 |
解説
このメソッドは、 ReadByte をオーバーライドします。
メモ 現在のインスタンスが読み取りをサポートしているかどうかを判断するには、 CanRead プロパティを使用します。詳細については、 CanRead のトピックを参照してください。
実装時の注意: Stream に対する既定の実装は、新しい 1 バイト配列を作成してから Read を呼び出します。このメソッドは正式には正しいのですが、効率的ではありません。内部バッファを備えたストリームは、このメソッドをオーバーライドし、直接バッファを読み込むはるかに効率的なバージョンを提供します。これにより、呼び出しのたびに不要な配列割り当てが行われるのを避けることができます。
その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します。
実行するタスク | 参考例があるトピック |
---|---|
テキスト ファイルを作成する。 | ファイルへのテキストの書き込み |
テキスト ファイルに書き込む。 | ファイルへのテキストの書き込み |
テキスト ファイルから読み取る。 | ファイルからのテキストの読み取り |
テキストをファイルに追加する。 | ログ ファイルのオープンと追加 |
ファイルの名前を変更、またはファイルを移動する。 | File.Move |
ファイルをコピーする。 | File.Copy |
ファイルのサイズを取得する。 | FileInfo.Length |
ファイルの属性を取得する。 | File.GetAttributes |
ファイルの属性を設定する。 | File.SetAttributes |
ファイルが存在するかどうかを判別する。 | File.Exists |
バイナリ ファイルから読み取る。 | 新しく作成したデータ ファイルの読み取りと書き込み |
バイナリ ファイルに書き込む。 | 新しく作成したデータ ファイルの読み取りと書き込み |
ディレクトリを作成する。 | Directory.CreateDirectory |
使用例
[Visual Basic, C#, C++] ファイルにデータをバイト単位で書き込み、さらにデータが正常に書き込まれたことを確認する例を次に示します。
Imports Microsoft.VisualBasic
Imports System
Imports System.IO
Imports System.Text
Class FStream
Shared Sub Main()
Const fileName As String = "Test#@@#.dat"
' Create random data to write to the file.
Dim dataArray(100000) As Byte
Dim randomGenerator As New Random()
randomGenerator.NextBytes(dataArray)
Dim fileStream As FileStream = _
new FileStream(fileName, FileMode.Create)
Try
' Write the data to the file, byte by byte.
For i As Integer = 0 To dataArray.Length - 1
fileStream.WriteByte(dataArray(i))
Next i
' Set the stream position to the beginning of the stream.
fileStream.Seek(0, SeekOrigin.Begin)
' Read and verify the data.
For i As Integer = 0 To _
CType(fileStream.Length, Integer) - 1
If dataArray(i) <> fileStream.ReadByte() Then
Console.WriteLine("Error writing data.")
Return
End If
Next i
Console.WriteLine("The data was written to {0} " & _
"and verified.", fileStream.Name)
Finally
fileStream.Close()
End Try
End Sub
End Class
[C#]
using System;
using System.IO;
class FStream
{
static void Main()
{
const string fileName = "Test#@@#.dat";
// Create random data to write to the file.
byte[] dataArray = new byte[100000];
new Random().NextBytes(dataArray);
using(FileStream
fileStream = new FileStream(fileName, FileMode.Create))
{
// Write the data to the file, byte by byte.
for(int i = 0; i < dataArray.Length; i++)
{
fileStream.WriteByte(dataArray[i]);
}
// Set the stream position to the beginning of the file.
fileStream.Seek(0, SeekOrigin.Begin);
// Read and verify the data.
for(int i = 0; i < fileStream.Length; i++)
{
if(dataArray[i] != fileStream.ReadByte())
{
Console.WriteLine("Error writing data.");
return;
}
}
Console.WriteLine("The data was written to {0} " +
"and verified.", fileStream.Name);
}
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::IO;
void main()
{
String* fileName = "Test@##@.dat";
// Create random data to write to the file.
Byte dataArray __gc[] = new Byte __gc[100000];
(new Random())->NextBytes(dataArray);
FileStream* fileStream =
new FileStream(fileName, FileMode::Create);
try
{
// Write the data to the file, byte by byte.
for(int i = 0; i < dataArray->Length; i++)
{
fileStream->WriteByte(dataArray[i]);
}
// Set the stream position to the beginning of the file.
fileStream->Seek(0, SeekOrigin::Begin);
// Read and verify the data.
for(int i = 0; i < fileStream->Length; i++)
{
if(dataArray[i] != fileStream->ReadByte())
{
Console::WriteLine(S"Error writing data.");
return;
}
}
Console::WriteLine(S"The data was written to {0} "
S"and verified.", fileStream->Name);
}
__finally
{
fileStream->Close();
}
}
[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 名前空間 | 入出力操作 | ファイルからのテキストの読み取り | ファイルへのテキストの書き込み