印刷用ページ      送信     
クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
Visual Studio 2005
Technical Articles
VB マイグレーション Tips
プログラミング
 WriteAllText 、ReadAllText メソッドを用いてフ...
WriteAllText 、ReadAllText メソッドを用いてファイルを簡単に読み書きする方法

最終更新日 2006 年 6 月 1 日

download.gif サンプル コードのダウンロード (vbmigtips_AllText.msi, 491 KB)

※ このサンプルをインストールするには Visual Studio 2005 が必要です。

ファイル全体を読み込んだり書き出したりする際にも、ファイルのオープン、及び、クローズという手続きが不可欠です。そこで今回は、WriteAllText 、ReadAllText メソッドを用いて、オープンやクローズを意識することなく、ファイルを簡単に扱う方法を紹介します。

Visual Basic 6.0 でファイルの読み書きを行う場合、Get や Put 等を使う必要があります。これらのステートメントは柔軟性が不足していて、やはり、使う際には Open や Close というステートメントが不可欠でした。また、以前の Visual Basic .NET では StreamReader や StreamWriter クラスが使えるようになりましたが、これもやはり Close メソッドを使う必要がありました。以前の Visual Basic .NET でのファイルの読み書きの実装方法は以下のとおりです。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    If System.IO.File.Exists(TextBox1.Text) Then
        Dim srTest As System.IO.StreamReader = New System.IO.StreamReader(TextBox1.Text)
        TextBox2.Text = srTest.ReadToEnd()
        srTest.Close()
    End If
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Dim srTest As System.IO.StreamWriter = New System.IO.StreamWriter(TextBox1.Text)
    srTest.Write(TextBox2.Text)
    srTest.Close()
End Sub

リスト1

上記 (リスト1) の「Dim srTest As System.IO.StreamReader = New System.IO.StreamReader(TextBox1.Text)」では、 TextBox1 から文字列を取得し、その文字列の場所にあるファイルを開き、「TextBox2.Text = srTest.ReadToEnd()」でファイルを最後まで読み取り、TextBox2 に表示します。「srTest.Close()」で ファイルを閉じます。「Dim srTest As System.IO.StreamWriter = New System.IO.StreamWriter(TextBox1.Text)」では、 TextBox1 から文字列を取得し、その文字列の場所にあるファイルを開きます。「srTest.Write(TextBox2.Text)」で TextBox2 の文字列をファイルに書き出します。そして、「srTest.Close()」で ファイルを閉じます。

上記 (リスト1) を実装し、プロジェクトを実行すると、図1 が表示されます。

図
図 1

下部のテキストボックスに文字を入力し、上部のテキストボックスにファイル名を記入後、保存ボタンを押します。 (図2)

図
図 2

すると、図3のようなテキストファイルが作成されます。

図
図 3

図3 のファイルを読み込む場合、図3 のファイルの場所を指定し、読み込みボタンを押すと図2 のようにファイルの内容が表示されます。
表示されたファイル内容を図4 のように変更し、保存ボタンを押します。

図
図 4

すると、ファイルの内容も変更されます。 (図5)

図
図 5

一方、Visual Basic 2005 では、System.IO.File クラスの ReadAllText メソッドや WriteAllText メソッドを使うことができます。ReadAllText メソッドや WriteAllText メソッドを使うことにより、Open や Close というステートメントを使用する必要がなくなります。Visual Basic 2005 の ReadAllText メソッド、WriteAllText メソッドを使用方法は以下のとおりです (以下は、リスト1 を書き直したものです) 。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    If My.Computer.FileSystem.FileExists(TextBox1.Text) Then
        TextBox2.Text = System.IO.File.ReadAllText(TextBox1.Text)
    End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    System.IO.File.WriteAllText(TextBox1.Text, TextBox2.Text)
End Sub

リスト2

上記 (リスト2) の「TextBox2.Text = System.IO.File.ReadAllText(TextBox1.Text)」では、 TextBox1 (上部のテキストボックス) から文字列を取得し、その文字列の場所にあるファイルを開き、ファイルを最後まで読み取ります。読み取ったデータを TextBox2 (下部のテキストボックス) に表示します。「System.IO.File.WriteAllText(TextBox1.Text, TextBox2.Text)」では、 TextBox1 から文字列を取得し、その文字列の場所にあるファイルを開き、 TextBox2 の文字列をファイルに書き出します。

このように、 ReadAllText メソッドや WriteAllText メソッドを使用することで、よりわかりやすい簡潔なコードの記述が可能となりました。

© 2008 Microsoft Corporation.All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker