[C#] CSVファイルを書き出す

CSVファイルへの書き出しは、書き出す項目をカンマで区切って連結する以外は、テキストファイルへの書き出しと変わらない。

[C#] CSVファイルを読み込む

VBで便利に使えるCSVファイルのパーサー(Microsoft.VisualBasic.FileIO.TextFieldParser)がC#からでも使える。これを使うとCSVファイルの読み込みはとっても簡単。

参考サイト

CSVファイルを読み込むには?[2.0のみ、C#、VB] - @IT
http://www.atmarkit.co.jp/fdotnet/dotnettips/487csvparser/csvparser.html

[C#] テキストファイルを書き出す

テキストファイルの書き出しにはStreamWriterクラス (System.IO)を使う。

ファイルが存在すれば上書き

テキストの書き出しにはWriteやWriteLineメソッドを使う。

エラーが発生すると例外がスローされる。

このサンプルのようにエンコーディング指定が無い場合は、デフォルトでUTF-8となる。もしShift JISで書き出したければエンコーディングの指定が必要(後述)。

既存ファイルへの追加書き込み

追加書き込みフラグ付きのコンストラクタを使うと、ファイルが存在する場合に上書きするか、ファイルの末尾に追加するかを指定できる。

Shift JISでの書き出し

UTF-8以外の文字コードで書き出すには、エンコーディングを指定する必要がある。

参考サイト

StreamWriter クラス (System.IO)
http://msdn.microsoft.com/ja-jp/library/system.io.streamwriter(v=vs.110).aspx

[C#] テキストファイルを読み込む

StreamReaderクラス (System.IO) を使うと、テキストファイルを簡単に読み込むことができる。このクラスはTextReaderクラスの派生クラスである。

ファイルの読み込みは、ファイルのオープン、読み込み、クローズの3つの手順から成る。

ファイル全体を一気に読み込む

ReadToEndメソッドを使うと、ファイル全体を一気に読み込むことができる。

エラーが発生すると例外がスローされる。

このサンプルでは文字コードがShift-JISのテキストファイルを読み込んでいる。

文字エンコードのデフォルトはUTF-8なので、UTF-8のテキストファイルを読み込む場合にはEncodingの指定は省略可能。誤ったエンコードを指定すると(たとえばエンコードにUTF-8を指定してShift-JISファイルを読み込むような場合)、読み込まれたテキストが文字化けするので注意が必要だ。

オープンしたファイルは必ずクローズする必要がある。usingステートメントを使うと、明示的にクローズする必要は無くなる。

ファイルを1行ずつ読み込む

ReadLineメソッドを使うと、ファイルから1行だけ読み込むことができる。

“n”、”r”、”rn” の何れかのコードが見つかると行末と認識される。ReadLineメソッドが返す文字列からは行末コードは除去されている。ファイルの末尾に到達すると、ReadLineメソッドはnullを返す。

参考サイト

StreamReader クラス (System.IO)
http://msdn.microsoft.com/ja-jp/library/system.io.streamreader(v=vs.110).aspx

[C#] 経過時間を計測する

StopWatchクラス (System.Diagnostics)を使うと、経過時間を簡単に計測できる。

時間計測にはシステムのタイマーを使っているので、精度はハードウェアやオペレーティングシステムに依存する。Frequency及びIsHighResolutionフィールドを使うことで、タイマーの精度や解像度を知ることもできる。

参考サイト

Stopwatch クラス (System.Diagnostics)
http://msdn.microsoft.com/ja-jp/library/system.diagnostics.stopwatch(v=vs.110).aspx