質問者
テキストファイルの出力について

質問
-
C#でテキストファイルを出力(既にあれば上書き)するプログラムをコーディング中です。
Buf = Buf + "AAAAA";
Buf = Buf + "BBBBB";
Buf = Buf + "あああああ";
Buf = Buf + "いいいいい";
・
・
・
string stBuffer = Buf;
System.IO.StreamWriter sw = new System.IO.StreamWriter(@".\SAMPLE.txt");
sw.Write(stBuffer);
sw.Close();
とすると正常に出力さるのですが出力先テキストファイルの
1行目~10行目まではプログラムにて出力
11行目~最終行は手入力
としたく思ってます。
上記のコーディングだと、11行目以下に手入力で文字を書いてもプログラムにて保存すると
1行目~10行目しか出力されず、手入力した部分が消された形で出力されます。
プログラムでの出力方法で、該当する部分のみを書き換えて保存する仕方ってあるんでしょうか?
すべての返信
-
ReadAllTextは名前のとおりすべてのテキストを読み込むものです。
というか、どのクラスのメソッドを指していますか?
書き出し時にStreamWriteを使っているので読み込み時はStreamReaderかと思っているのですけど。
(StreamReaderだとReadToEndメソッドだと思われるんだけど。ReadToEndなら読み込み位置をシークさせれば
そこから読み込めるはずだけど。)
System.IO.Fileクラスであれば、ReadAllLinesメソッドで全行読み込んでから
配列の最初の10要素を適当に書き換えて、WriteAllLinesで書き込むってことが出来そうです。