訪問して頂きありがとうございます。まさふくろーです。
この記事では、テキストファイルを開く方法をご紹介します。
目次
テキストファイルを開く
New StreamReader(ファイルパス, 使用する文字エンコード)
補足 |
シフトJISのエンコードで開くには、第2引数「使用する文字エンコード」に「Encoding.GetEncoding("Shift_JIS")」と指定します。 |
現在のエンコードで開くには、第2引数「使用する文字エンコード」に「Encoding.Default」と指定します。 |
パスが指定されていない場合、例外ArgumentExceptionが発生します。 |
指定したファイルが存在しない場合、例外FileNotFoundExceptionが発生します。 |
New StreamWriter(ファイルパス, 書き込みのモード, 使用する文字エンコード)
補足 |
データを追加する場合は、第2引数「書き込みのモード」に「True」、上書きする場合は、第2引数「書き込みのモード」に「False」を指定します。 |
シフトJISのエンコードで開くには、第2引数「使用する文字エンコード」に「Encoding.GetEncoding("Shift_JIS")」と指定します。 |
現在のエンコードで開くには、第2引数「使用する文字エンコード」に「Encoding.Default」と指定します。 |
パスが指定されていない場合、例外ArgumentExceptionが発生します。 |
サンプルプログラム
名前空間のインポート
1 2 |
Imports System.IO Imports System.Text |
1 | StreamReaderクラスを使うため、System.IO名前空間をインポート。 |
2 | Encodingクラスを使うため、System.Text名前空間をインポート。 |
テキストファイルを読み取り用に開く
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim FilePath As String = TextBox1.Text Dim ExtensionName As String Try ExtensionName = Path.GetExtension(FilePath) If ExtensionName = ".txt" Then Using sr As New StreamReader(FilePath, Encoding.GetEncoding("Shift_JIS")) End Using Label1.Text = FilePath & "ファイルを読み取り用に開きました。" End If Catch ex As ArgumentException Label1.Text = "パスが指定されていません。" Catch ex As FileNotFoundException Label1.Text = "ファイルが見つかりません。" Catch ex As Exception Label1.Text = Err.Description End Try End Sub End Class |
2 | 「テキストファイルを開く」ボタンクリック時に以下処理を行う。 |
4 | ファイルパスを、文字列型の変数「FilePath」に代入。 |
9 | ファイルパスからファイルの拡張子を取得し、文字列型の変数「ExtensionName」に代入。 |
11 | ファイルの拡張子が「.txt」の場合、 |
13 | ファイルを読み取り用に開く処理を実行する。(シフトJISのエンコードで開く)(Usingステートメントでファイルを閉じる処理を自動化) |
17 | 正常に処理が実行された場合、正常終了のメッセージをラベルに表示する。 |
21 | ファイルのパスが指定されていない場合、 |
23 | 「パスが指定されていません。」のメッセージをラベルに表示する。 |
25 | 指定したファイルが見つからない場合、 |
27 | 「ファイルが見つかりません。」のメッセージをラベルに表示する。 |
29 | 処理の実行中にエラーが発生した場合、 |
31 | エラー内容を取得し、ラベルに表示する。 |
テキストファイルを書き込み用に開く
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim FilePath As String = TextBox1.Text Dim ExtensionName As String Try ExtensionName = Path.GetExtension(FilePath) If ExtensionName = ".txt" Then Using sw As New StreamWriter(FilePath, True, Encoding.GetEncoding("Shift_JIS")) End Using Label1.Text = FilePath & "ファイルを書き込み用に開きました。" End If Catch ex As ArgumentException Label1.Text = "パスが指定されていません。" Catch ex As Exception Label1.Text = Err.Description End Try End Sub End Class |
2 | 「テキストファイルを開く」ボタンクリック時に以下処理を行う。 |
4 | ファイルパスを、文字列型の変数「FilePath」に代入。 |
9 | ファイルパスからファイルの拡張子を取得し、文字列型の変数「ExtensionName」に代入。 |
11 | ファイルの拡張子が「.txt」の場合、 |
13 | ファイルを書き込み用に開く処理を実行する。(シフトJISのエンコードで開く)(Usingステートメントでファイルを閉じる処理を自動化) |
17 | 正常に処理が実行された場合、正常終了のメッセージをラベルに表示する。 |
21 | ファイルのパスが指定されていない場合、 |
23 | 「パスが指定されていません。」のメッセージをラベルに表示する。 |
25 | 処理の実行中にエラーが発生した場合、 |
27 | エラー内容を取得し、ラベルに表示する。 |
関連記事
テキストファイルのデータを1行ずつ読み込む
【VB.NET】テキストファイルのデータを1行ずつ読み込むには?
テキストファイルのデータを1文字ずつ読み込む
【VB.NET】テキストファイルのデータを1文字ずつ読み込むには?
テキストファイルのデータを1度に読み込む
【VB.NET】テキストファイルのデータを1度に読み込むには?
テキストファイルにデータを書き込む
パスからファイルの拡張子を取得
Usingステートメント
【VB.NET】UsingステートメントでDisposeメソッドの呼び出しを自動化する
構造化例外処理
最後まで読んでいただき、ありがとうございました!
本のまとめ関連記事はこちら