2

StreamWriter 経由で単純な .txt を書き込もうとしています。私はそれを次のようにしたい:

  • 12
  • 26
  • 100

とても単純な数字。しかし、どの行で書き込みまたは読み取りを行うかをリーダー/ライターに伝えるにはどうすればよいですか。

http://msdn.microsoft.com/en-us/library/system.io.streamreader.aspx

ここではReadLine()、現在のストリームの行を読み取ると書かれています。しかし、それがどの行であるかをどうやって知ることができますか。それとも常に最初のものですか?

数値を読み取り、変更してから書き戻したいと思います。

助言がありますか?

前もって感謝します!

4

2 に答える 2

5

リーダーは、概念的には、最初 (より正確には、ストリーム内の現在の位置) から最後まで一方向のものです。

行を読み取るたびに、新しい行が見つかるまでデータをバッファリングするだけです。現在の行 (または行間を移動する) の概念は実際にはありません。

ファイルが大規模でない限り、ファイル全体を読み取り、文字列 (または文字列配列) で作業してから、ファイル全体を保存しても問題ありません。それ以外の場合、テキスト コンテンツの挿入/削除は簡単ではありません (特に、エンコーディングの謎を考える場合)。

あなたのシナリオでは File.ReadAllLines と File.WriteAllLines の方が簡単かもしれません。

于 2011-05-12T18:21:56.953 に答える
0

唯一の方法は、配列(または他のデータ構造、つまりリスト)のすべての行を読み取り、変更してファイルに書き戻すことだと思います。おそらくxmlはあなたの目的に適していますか?

于 2011-05-12T18:19:29.747 に答える