C# Fileの読み書き
仕事で扱う機会があったのでこの機会に少しまとめてみようかな、と。
とりあえず基本的な事項のみで。
C#の現在のものだとopenとかcloseとかは気にしないですむ。
まずは普通にファイルの書き込み。
class Program { private static string path = "test.txt"; static void Main(string[] args) { File.WriteAllText(path, "HelloWorld"); } }
結果
HelloWorld
配列を入れてファイルの書き込みもできるらしい。
配列の要素ごとに改行を行う。
class Program { private static string path = "test.txt"; static void Main(string[] args) { var array = new string[] {"apple", "banana", "cherry"}; File.WriteAllLines(path, array); } }
結果
apple banana cherry
ファイルの読み込みも簡単に行える。
前提として上記のappleなどが書かれているファイルを読み込む。
class Program { private static string path = "test.txt"; static void Main(string[] args) { var reader = File.ReadAllText(path); Console.WriteLine(reader); } }
結果
apple banana cherry
上記のWriteLinesと似たような感じでReadAllLinesメソッドを使用すると、行ごとの配列で結果が返ってくる。
class Program { private static string path = "test.txt"; static void Main(string[] args) { var reader = File.ReadAllLines(path); foreach (var item in reader) { Console.WriteLine(item); } } }
結果
apple banana cherry
WriteLineのデメリットとして二回行ってしまうと結果が上書きされてしまう。
class Program { private static string path = "test2.txt"; static void Main(string[] args) { File.WriteAllText(path, "HelloWorld"); File.WriteAllText(path, "HelloWorld2"); } }
結果
HelloWorld2
なので、AppendAllTextを使う。
なお、AppendAllLinesは配列やリストで渡すと行ごとに書き込みを行ってくれる。
というか、これだけは配列じゃなくてもいいらしい。
class Program { private static string path = "test3.txt"; static void Main(string[] args) { File.AppendAllText(path, "HelloWorld"); File.AppendAllText(path, "HelloWorld2"); File.AppendAllLines(path, new string[] {"apple", "banana"}); File.AppendAllLines(path, new List<string>() {"cherry","drian"}); } }
結果
HelloWorldHelloWorld2apple banana cherry drian