カテゴリ: VB.NET 更新日: 2026/03/04

VB.NETのファイル操作を完全ガイド!初心者でもわかる読み書きの基本

VB.NETでファイルを読み書きする基本(StreamReader/StreamWriter)
VB.NETでファイルを読み書きする基本(StreamReader/StreamWriter)

先生と生徒の会話形式で理解しよう

生徒

「VB.NETでメモ帳のようなテキストファイルに文字を保存したり、読み込んだりする方法はありますか?」

先生

「もちろんです。VB.NETでは、StreamReader(ストリームリーダー)とStreamWriter(ストリームライター)という道具を使って、簡単にファイルの読み書きができますよ。」

生徒

「ストリーム…?なんだか難しそうな名前ですね。パソコンに詳しくない私でも使いこなせるでしょうか?」

先生

「ストリームは『データの流れ』という意味です。ストローでお茶を飲むように、データを少しずつ運ぶイメージですね。具体的な使い方を丁寧に解説していきます!」

1. ファイル操作の基本「ストリーム」とは?

1. ファイル操作の基本「ストリーム」とは?
1. ファイル操作の基本「ストリーム」とは?

VB.NET(ヴィジュアルベーシック・ドットネット)でファイルを扱うときに必ず出てくる言葉が「ストリーム(Stream)」です。これは、パソコンのハードディスクやメモリーの間で、データが流れる通路のようなものを指します。

プログラミング未経験の方には、「水道のホース」を想像してもらうと分かりやすいでしょう。蛇口(ファイル)をひねると、水(データ)がホース(ストリーム)を通ってバケツ(プログラム)に溜まります。このホースの役割を担うのが、今回学習する StreamWriter(書き込み用)StreamReader(読み込み用) なのです。これらをマスターすることで、日記アプリや家計簿アプリなど、データを保存する便利なソフトウェアを作ることができるようになります。

2. StreamWriterでファイルに文字を書き込む

2. StreamWriterでファイルに文字を書き込む
2. StreamWriterでファイルに文字を書き込む

まずは、プログラムで作った文章をテキストファイルとして保存する方法を学びましょう。ここで使うのが StreamWriter(ストリームライター) です。「ライター」という名前の通り、筆記用具のような役割を果たします。

ファイルに書き込むときは、まず「どのファイルに書くか」を決め、次に「内容を書く」、最後に「筆記用具を片付ける(閉じる)」という手順を踏みます。この「片付ける」作業を忘れると、ファイルが壊れたり、他のソフトで開けなくなったりするので注意しましょう。VB.NETでは Using という命令を使うと、自動で片付けをしてくれるので非常に安全です。


' 保存する場所とファイル名を決めます
Dim filePath As String = "C:\temp\sample.txt"

' Usingを使うと、書き込みが終わった後に自動でファイルを閉じてくれます
Using writer As New System.IO.StreamWriter(filePath, False, System.Text.Encoding.UTF8)
    writer.WriteLine("こんにちは!VB.NETの世界へようこそ。")
    writer.WriteLine("これはStreamWriterで書き込んだ文章です。")
    writer.WriteLine("今日の日付は " & DateTime.Now.ToString() & " です。")
End Using

Console.WriteLine("ファイルの書き込みが完了しました。")

このコードを実行すると、指定した場所にテキストファイルが作成され、中に文章が書き込まれます。False と書いてある部分は「上書き」を意味します。ここを True に変えると、元の内容を残したまま後ろに追記することができます。

3. StreamReaderでファイルの内容を読み込む

3. StreamReaderでファイルの内容を読み込む
3. StreamReaderでファイルの内容を読み込む

次に、保存されているファイルの中身をプログラムで読み取ってみましょう。ここで使うのが StreamReader(ストリームリーダー) です。「リーダー」は読書家のような役割で、ファイルの中身を一行ずつ、あるいは全部まとめて読み取ってくれます。

読み込む際も書き込みと同様に、最後には必ず「本を閉じる(ファイルを閉じる)」必要があります。ここでも Using を活用するのがベストな書き方です。読み取った内容は、プログラム内の変数に保存して、画面に表示したり計算に使ったりすることができます。


Dim targetPath As String = "C:\temp\sample.txt"

' ファイルが存在するか確認してから読み込みます
If System.IO.File.Exists(targetPath) Then
    Using reader As New System.IO.StreamReader(targetPath, System.Text.Encoding.UTF8)
        ' ファイルの内容を最後まで一気に読み込みます
        Dim content As String = reader.ReadToEnd()
        Console.WriteLine("--- ファイルの中身を表示します ---")
        Console.WriteLine(content)
    End Using
Else
    Console.WriteLine("ファイルが見つかりませんでした。")
End If

実行結果は以下のようになります。


--- ファイルの中身を表示します ---
こんにちは!VB.NETの世界へようこそ。
これはStreamWriterで書き込んだ文章です。
今日の日付は 2026/02/06 14:35:46 です。

4. 一行ずつ読み込んで処理する方法

4. 一行ずつ読み込んで処理する方法
4. 一行ずつ読み込んで処理する方法

大きなファイルの場合、一気に全部読み込むとパソコンのメモリが足りなくなってしまうことがあります。そんなときは、一行ずつ順番に読み込む方法が効果的です。ReadLine(リードライン) という命令を使い、ループ処理(繰り返し)と組み合わせることで、一行ごとに内容をチェックしながら読み進めることができます。

例えば、大量の名簿データの中から、特定の名前の人だけを探したいときなどにこの方法を使います。パソコン初心者の方には、「本をペラペラめくりながら、一行ずつ指で追って読んでいく」イメージを持ってもらうと分かりやすいでしょう。


Dim listPath As String = "C:\temp\sample.txt"

Using reader As New System.IO.StreamReader(listPath)
    ' ファイルの最後まで繰り返し読み込みます
    While reader.Peek() >= 0
        Dim line As String = reader.ReadLine()
        ' もし読み込んだ行に「VB.NET」という文字が含まれていたら表示します
        If line.Contains("VB.NET") Then
            Console.WriteLine("発見しました: " & line)
        End If
    End While
End Using

reader.Peek() は、「次に読み込む文字があるかな?」と覗き見する命令です。文字がある間はずっと読み続けるという仕組みになっています。これにより、どんなに長い文章でも、一行ずつ着実に処理することが可能になります。

5. エンコーディング(文字コード)に注意しよう

5. エンコーディング(文字コード)に注意しよう
5. エンコーディング(文字コード)に注意しよう

ファイル操作でよくある失敗が「文字化け」です。文字化けとは、保存したときと読み取ったときの「文字の翻訳ルール」が食い違って、意味不明な記号が表示されてしまう現象です。この翻訳ルールのことをエンコーディング(文字コード)と呼びます。

現代の標準は UTF-8(ユーティーエフエイト) です。VB.NETでファイルを開くときは、書き込み時も読み込み時も同じ System.Text.Encoding.UTF8 を指定するようにしましょう。特に昔の日本のパソコンで使われていた「Shift-JIS(シフトジス)」のファイルを扱うときは注意が必要です。ルールを統一することが、ファイル操作を成功させる最大の秘訣です。

6. ファイルが見つからないエラーを防ぐ

6. ファイルが見つからないエラーを防ぐ
6. ファイルが見つからないエラーを防ぐ

プログラムがファイルを読みに行こうとしたとき、そこにファイルがなかったらパソコンはパニックを起こして停止してしまいます。これを 例外(エラー) と呼びます。未経験の方が書くプログラムで最も多い失敗の一つです。

これを防ぐためには、いきなりファイルを読もうとせず、まず System.IO.File.Exists という命令を使って、「そこにファイルはありますか?」と確認してから作業を始めるのが、プログラミングの「ベストプラクティス(一番良いやり方)」です。事前に確認する癖をつけることで、止まらない安定したアプリを作ることができます。


Dim myFile As String = "C:\temp\data.txt"

' ファイルがあるかどうか、事前に「もしも」で確認します
If System.IO.File.Exists(myFile) Then
    ' ここで初めてファイルを読み込む処理を書きます
    Console.WriteLine("ファイルが見つかったので、読み込みを開始します。")
Else
    ' ファイルがない場合の処理を書きます
    Console.WriteLine("エラー:ファイルが指定の場所に見当たりません。")
End If

7. フォルダ(ディレクトリ)の作成も忘れずに

7. フォルダ(ディレクトリ)の作成も忘れずに
7. フォルダ(ディレクトリ)の作成も忘れずに

ファイルを保存しようとしたとき、そのファイルを置くための「フォルダ」自体が存在しない場合もエラーになってしまいます。ファイルを書き込む前には、保存先のフォルダがちゃんとあるかどうかも確認しましょう。もしなければ、System.IO.Directory.CreateDirectory という命令でフォルダを自動作成することもできます。

パソコンの操作に慣れていない方は、まず「Cドライブ」の中に「temp」という名前のフォルダを手作業で作っておくのが一番簡単でおすすめです。プログラムからフォルダを操作できるようになると、日付ごとに自動でフォルダを分けてファイルを整理するといった高度なこともできるようになります。

8. ファイル操作をマスターしてアプリを作ろう

8. ファイル操作をマスターしてアプリを作ろう
8. ファイル操作をマスターしてアプリを作ろう

VB.NETでのファイル読み書きは、StreamReaderとStreamWriterという二つの主役を覚えることから始まります。最初は難しく感じるかもしれませんが、「開く」「書く/読む」「閉じる」という三拍子の流れを繰り返すだけです。この技術を習得すれば、ユーザーが入力した大切なデータを長期間保存しておくことができるようになり、本物のアプリケーション開発へと大きく前進します。

まずは、簡単な日記帳プログラムから作ってみてはいかがでしょうか。自分の書いた文字がファイルとして保存され、再び読み込めたときの感動は、プログラミング学習の大きなモチベーションになります。今回の基本をしっかり守って、ぜひ色々なファイル操作に挑戦してみてくださいね!

関連記事:

関連記事なし

カテゴリの一覧へ
新着記事
New1
ASP.NET
ASP.NETのtry-catch構文を完全解説!初心者でもわかる例外処理の基礎
New2
VB.NET
VB.NETのファイル操作を完全ガイド!初心者でもわかる読み書きの基本
New3
ASP.NET
ASP.NETアプリにおけるエラー処理の基本をやさしく解説!初心者でもわかる例つき入門
New4
VB.NET
VB.NET文字列操作のベストプラクティスを解説!よくあるエラー回避術
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのインストール方法まとめ!Visual Studioを使った環境構築手順
No.2
Java&Spring記事人気No2
VB.NET
VB.NETで文字列をバイト配列に変換!Encodingの基本を完全解説
No.3
Java&Spring記事人気No3
VB.NET
VB.NETのWhileループとDo Whileループの違いと使い分け完全ガイド
No.4
Java&Spring記事人気No4
ASP.NET
ASP.NET Web APIとMVCの違いを完全解説!初心者でもわかるWebアプリとAPIの基本
No.5
Java&Spring記事人気No5
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.6
Java&Spring記事人気No6
VB.NET
VB.NETの構文ルールまとめ!インデント・改行・予約語など初心者が最初に覚えるべきポイント
No.7
Java&Spring記事人気No7
VB.NET
VB.NETのBoolean型(True/False)の使い方と条件分岐での活用方法を徹底解説!初心者でも理解できる基本
No.8
Java&Spring記事人気No8
VB.NET
VB.NETで文字列の比較を完全マスター!EqualsとCompareの使い方