次の方法で共有


StreamReader.Read メソッド ()

入力ストリームから次の文字を読み込み、1 文字分だけ文字位置を進めます。

Overrides Overloads Public Function Read() As Integer
[C#]
public override int Read();
[C++]
public: int Read();
[JScript]
public override function Read() : int;

戻り値

入力ストリームの次の文字を Int32 で表した値。使用できる文字がない場合は -1。

例外

例外の種類 条件
IOException I/O エラーが発生しました。

解説

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

このメソッドは整数を返し、ストリームの末尾に到達すると -1 を返します。

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

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

File.AppendText

FileInfo.AppendText

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

使用例

[Visual Basic, C#, C++] Read メソッドの使用方法の簡単な例を次に示します。

 
Imports System
Imports System.IO
Imports System.Text

Public Class Test

    Public Shared Sub Main()
        Dim path As String = "c:\temp\MyTest.txt"

        Try
            If File.Exists(path) Then
                File.Delete(path)
            End If

            Dim sw As StreamWriter = New StreamWriter(path)
            sw.WriteLine("This")
            sw.WriteLine("is some text")
            sw.WriteLine("to test")
            sw.WriteLine("Reading")
            sw.Close()

            Dim sr As StreamReader = New StreamReader(path)

            Do While sr.Peek() >= 0
                Console.Write(Convert.ToChar(sr.Read()))
            Loop
            sr.Close()
        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

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

class Test 
{
    
    public static void Main() 
    {
        string path = @"c:\temp\MyTest.txt";

        try 
        {
            if (File.Exists(path)) 
            {
                File.Delete(path);
            }

            using (StreamWriter sw = new StreamWriter(path)) 
            {
                sw.WriteLine("This");
                sw.WriteLine("is some text");
                sw.WriteLine("to test");
                sw.WriteLine("Reading");
            }

            using (StreamReader sr = new StreamReader(path)) 
            {
                while (sr.Peek() >= 0) 
                {
                    Console.Write((char)sr.Read());
                }
            }
        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    }
}

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

using namespace System;
using namespace System::IO;

int main() {
   String* path = S"c:\\temp\\MyTest.txt";

   try {
      if (File::Exists(path)) {
         File::Delete(path);
      }

      StreamWriter* sw = new StreamWriter(path);
      try {
         sw->WriteLine(S"This");
         sw->WriteLine(S"is some text");
         sw->WriteLine(S"to test");
         sw->WriteLine(S"Reading");
      } __finally {
         if (sw) __try_cast<IDisposable*>(sw)->Dispose();
      }

      StreamReader* sr = new StreamReader(path);
      try {
         while (sr->Peek() >= 0) {
            Console::Write((Char)sr->Read());
         }
      } __finally {
         if (sr) __try_cast<IDisposable*>(sr)->Dispose();
      }
   } catch (Exception* e) {
      Console::WriteLine(S"The process failed: {0}", e);
   }
}

[Visual Basic, C#, C++] StreamReader.Read() を使用して、1 文字読み取る例を次に示します。ここでは、ASCII 整数を 10 進数と 16 進数で書式設定して出力しています。

 
Imports System
Imports System.IO

Class StrmRdrRead
   
   Public Shared Sub Main()
      'Create a FileInfo instance representing an existing text file.
      Dim MyFile As New FileInfo("c:\csc.txt")
      'Instantiate a StreamReader to read from the text file.
      Dim sr As StreamReader = MyFile.OpenText()
      'Read a single character.
      Dim FirstChar As Integer = sr.Read()
      'Display the ASCII number of the character read in both decimal and hexadecimal format.
      Console.WriteLine("The ASCII number of the first character read is {0:D} in decimal and {1:X} in hexadecimal.", FirstChar, FirstChar)
      sr.Close()
   End Sub 'Main
End Class 'StrmRdrRead

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

class StrmRdrRead
{
public static void Main()
    {
    //Create a FileInfo instance representing an existing text file.
    FileInfo MyFile=new FileInfo(@"c:\csc.txt");
    //Instantiate a StreamReader to read from the text file.
    StreamReader sr=MyFile.OpenText();
    //Read a single character.
    int FirstChar=sr.Read();
    //Display the ASCII number of the character read in both decimal and hexadecimal format.
    Console.WriteLine("The ASCII number of the first character read is {0:D} in decimal and {1:X} in hexadecimal.",
        FirstChar, FirstChar);
    //
    sr.Close();
    }
}

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

using namespace System;
using namespace System::IO;

int main() {
    //Create a FileInfo instance representing an existing text file.
    FileInfo* MyFile = new FileInfo(S"c:\\csc.txt");
    //Instantiate a StreamReader to read from the text file.
    StreamReader* sr = MyFile->OpenText();
    //Read a single character.
    int FirstChar = sr->Read();
    //Display the ASCII number of the character read in both decimal and hexadecimal format.
    Console::WriteLine(S"The ASCII number of the first character read is {0:D} in decimal and {1:X} in hexadecimal.",
        __box(FirstChar), __box(FirstChar));
    //
    sr->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

参照

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