本記事は、Excel C# Script入門講座の1記事です。
ファイルの入出力
ファイル(特にテキストファイル)を読み書きしたい場合には、System.IO名前空間のFileクラス.aspx)を利用します。
System.IO名前空間はmscorelib内に含まれているため、参照の追加は必要ありません。利用にあたっては、using宣言のみ追加してください。
以下で紹介するメソッドを利用する限りは、ファイルを開く・閉じるといった操作は別途必要ありません。
ファイルの読み出し
File.ReadAllLinesメソッドでは、テキストファイルの各行を一文字列とした、文字列型の配列が返されます。
File.ReadAllTextメソッドでは、テキストファイル全文を一文字列とした、文字列が返されます。
using System.IO; var filename = "test.txt"; var tempArray = File.ReadAllLines(filename); var temp = File.ReadAllText(filename);
いずれのメソッドも第2引数で、文字列エンコーディングを指定可能です。
なお、文字列エンコーディングを指定するためのEncodingクラスは、System.Text名前空間に属するため、利用にあたってはusing宣言を追加してください。
using System.IO; using System.Text; var filename = "test.txt"; var tempArray = File.ReadAllLines(filename, Encoding.GetEncoding("Shift_JIS"));
ファイルの書き出し
File.WriteAllText メソッドを使うと、新しいファイルを作成し、第2引数の文字列をそのファイルに書き込んだ後、ファイルを閉じます。既存のターゲット ファイルは上書きされます。
File.WriteAllLines メソッドを使うと、第2引数の文字列型の配列をファイルに書き込みます。
using System.IO; var filename = "test.txt"; var s = "love C#."; File.WriteAllText(filename, s); var filename2 = "test2.txt"; var arr = {"C#", "VBA", "C#", "VBA"}; File.WriteAllLines(filename2, arr);
いずれのメソッドも第3引数で、文字列エンコーディングを指定可能です。
using System.IO; using System.Text; var filename = "test.txt"; var s = "love C#."; File.WriteAllText(filename, s, Encoding.GetEncoding(932));
ファイルの追記
File.AppendAllTextメソッドを使うと、既存ファイルの末尾に引数で指定した文字列を追加します。ファイルがまだ存在しない場合は、ファイルを作成します。第3引数で、文字列エンコーディングを指定可能です。
using System.IO; var filename = "test.txt"; var s = "love C# Script."; File.AppendAllText(filename, s);