|
.NET TIPS ファイルにテキストを書き込むには?[C#、VB]デジタルアドバンテージ 一色 政彦2007/11/08 |
![]() |
|
|
|
「TIPS:テキスト・ファイルの内容を読み込むには?」では、テキスト・ファイルに記述されたテキスト内容を読み込む方法を紹介している。本TIPSではこれとは逆の処理、つまりテキスト・ファイルにテキスト内容を書き込む方法を紹介する。
ファイルにテキストを書き込む最も基本的な方法
テキスト・ファイルに内容を書き込む手順は、基本的に次の3ステップになる。
(1)テキスト・ファイルを開く、もしくは作成する
(2)テキスト内容を書き込む
(3)テキスト・ファイルを閉じる
「(1)テキスト・ファイルを開く、もしくは作成する」の最も基本的な方法は、StreamWriterクラス(System.IO名前空間)のコンストラクタを使うことだ(※読み込みに利用するStreamReaderクラスとは違うことに注意)。
コンストラクタの第1パラメータにはファイルのパス名を指定し、第2パラメータにはtrueかfalseを指定する。trueの場合、既存のテキスト内容がすべて残されたまま、その末尾にテキスト内容が追記される。falseの場合、いったん既存の内容が完全に削除されてから、新たにテキスト内容が書き込まれる。第3パラメータにはテキスト・ファイルの文字エンコードとしてEncodingクラス(System.Text名前空間)のオブジェクトを指定する(Encodingオブジェクトの取得方法については「TIPS:Encodingクラスで扱えるエンコーディング名は?」を参考にされたい)。なお、テキスト・ファイルが存在しない場合は、自動的にファイルを作成してくれる。
次のコードは、実際にStreamWriterクラスのコンストラクタを呼び出すコード例である。コード中の「sjisEnc」はEncodingオブジェクトを表す。
|
||
| StreamWriterクラスのコンストラクタの呼び出し例(上:C#、下:VB) |
VB8(=VB 2005)では、このStreamWriterクラスのコンストラクタ以外にも「My.Computer.FileSystem.OpenTextFileWriterメソッド」(My機能)も利用できる。このメソッドのパラメータは、StreamWriterクラスのコンストラクタとまったく同じで、具体的には次のようなコードになる。
Dim writer As StreamWriter = My.Computer.FileSystem.OpenTextFileWriter("C:\Test.txt", True, sjisEnc)
「(2)テキスト内容を書き込む」を行うには、StreamWriterオブジェクトのWriteLineメソッドもしくはWriteメソッドを呼び出せばよい。どちらもパラメータに指定された文字列をファイルに書き出す機能を持つ。違いは、WriteLineメソッドは出力した文字列の最後に改行(=行終端記号。既定では「\r\n」)を挿入することだ。
最後に「(3)テキスト・ファイルを閉じる」ではStreamWriterオブジェクトのCloseメソッドを呼び出す。Closeメソッドの代わりに、C#のusingステートメント(参考:「TIPS:確実な終了処理を行うには?」)や、VB8で導入されたUsingステートメント(参考:「Visual Basic 2005 ここが便利!:第5回 Usingステートメントで簡単、確実にファイルをクローズ」)を使ってもよい。
次のコードは、ここまでの説明に従って記述したサンプル・プログラムである。
|
||
| テキスト・ファイルに内容を書き込むサンプル・プログラム(上:C#、下:VB) |
このサンプル・プログラムを実行すると、「C:\Test.txt」ファイルの末尾に「テスト書き込みです。」というテキスト内容がShift-JISエンコードで追加される。StreamWriterクラスの第2パラメータにtrueを指定しているので、2回目以降の実行では既存の「C:\Test.txt」ファイルの末尾にテキスト内容がどんどん追記されていくことを確認できる。![]()
| カテゴリ:クラス・ライブラリ 処理対象:テキスト・ファイル 使用ライブラリ:StreamWriterクラス(System.IO名前空間) 使用ライブラリ:Encodingクラス(System.Text名前空間) 関連TIPS:テキスト・ファイルの内容を読み込むには? 関連TIPS:Encodingクラスで扱えるエンコーディング名は? 関連TIPS:確実な終了処理を行うには? |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


