方法: ファイルのテキストの読み取りHow to: Read text from a file

次に、.NET デスクトップ アプリを使用してテキスト ファイルから同期でテキストを読み取る方法と非同期でテキストを読み取る方法の例を示します。The following examples show how to read text synchronously and asynchronously from a text file using .NET for desktop apps. どちらの例でも、StreamReader クラスのインスタンスを作成する場合に、ファイルの相対パスまたは絶対パスを指定します。In both examples, when you create the instance of the StreamReader class, you provide the relative or absolute path to the file.

注意

Windows ランタイムではファイルに対する読み取りと書き込みに別のストリーム型が用意されているため、これらのコード例はユニバーサル Windows プラットフォーム (UWP) アプリの開発には適用されません。These code examples do not apply to developing for Universal Windows (UWP) apps, because the Windows Runtime provides different stream types for reading and writing to files. UWP アプリのファイルからテキストを読み取る方法を示す例については、「Quickstart: Reading and writing files」 (クイック スタート: ファイルの読み取りと書き込み) を参照してください。For an example that shows how to read text from a file in a UWP app, see Quickstart: Reading and writing files. .NET Framework ストリームと Windows ランタイム ストリーム間で変換を行う方法を示す例については、「方法: .NET Framework ストリームと Windows ランタイム ストリームの間で変換を行う」を参照してください。For examples that show how to convert between .NET Framework streams and Windows Runtime streams, see How to: Convert between .NET Framework streams and Windows Runtime streams.

例:コンソール アプリの同期読み取りExample: Synchronous read in a console app

次の例では、コンソール アプリ内での同期読み取り操作を示します。The following example shows a synchronous read operation within a console app. この例では、ストリーム リーダーを使用してテキスト ファイルを開き、コンテンツが文字列にコピーされ、文字列がコンソールに出力されます。This example opens the text file using a stream reader, copies the contents to a string, and outputs the string to the console.

重要

サンプルでは、TestFile.txt という名前のファイルがアプリと同じフォルダーに入っていると想定しています。The example assumes that a file named TestFile.txt already exists in the same folder as the app.

using System;
using System.IO;

class Test
{
    public static void Main()
    {
        try
        {   // Open the text file using a stream reader.
            using (StreamReader sr = new StreamReader("TestFile.txt"))
            {
            // Read the stream to a string, and write the string to the console.
                String line = sr.ReadToEnd();
                Console.WriteLine(line);
            }
        }
        catch (IOException e)
        {
            Console.WriteLine("The file could not be read:");
            Console.WriteLine(e.Message);
        }
    }
}
Imports System.IO

Class Test
    Public Shared Sub Main()
        Try
            ' Open the file using a stream reader.
            Using sr As New StreamReader("TestFile.txt")
                ' Read the stream to a string and write the string to the console.
                Dim line = sr.ReadToEnd()
                Console.WriteLine(line)
            End Using
        Catch e As IOException
            Console.WriteLine("The file could not be read:")
            Console.WriteLine(e.Message)
        End Try
    End Sub
End Class

例:WPF アプリの非同期読み取りExample: Asynchronous read in a WPF app

次の例では、Windows Presentation Foundation (WPF) アプリ内での非同期読み取り操作を示します。The following example shows an asynchronous read operation in a Windows Presentation Foundation (WPF) app.

重要

サンプルでは、TestFile.txt という名前のファイルがアプリと同じフォルダーに入っていると想定しています。The example assumes that a file named TestFile.txt already exists in the same folder as the app.

using System;
using System.IO;
using System.Windows;

namespace TextFiles
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private async void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {
                using (StreamReader sr = new StreamReader("TestFile.txt"))
                {
                    string line = await sr.ReadToEndAsync();
                    ResultBlock.Text = line;
                }
            }
            catch (FileNotFoundException ex)
            {
                ResultBlock.Text = ex.Message;
            }
        }
    }
}
Imports System.IO
Imports System.Windows

''' <summary>
''' Interaction logic for MainWindow.xaml
''' </summary>

Partial Public Class MainWindow
    Inherits Window
    Public Sub New()
        InitializeComponent()
    End Sub

    Private Async Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs)
        Try
            Using sr As StreamReader = New StreamReader("TestFile.txt")
                Dim line = Await sr.ReadToEndAsync()
                ResultBlock.Text = line
            End Using
        Catch ex As FileNotFoundException
            ResultBlock.Text = ex.Message
        End Try
    End Sub
End Class

関連項目See also