指定行目への文字列の書き込み への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 bcltkn  (中学生) 投稿日時 2010/11/11 16:23:16
葉月さん、とくまさん、アドバイスありがとうございます。

自己解決しました。返答してくださり、ありがとうございました。
投稿者 とくま  (社会人) 投稿日時 2010/11/9 20:00:15
テキストファイルは途中に書き込むことが難しい(連続データとしてディスクに
保存されている)ので、全行読み込み&全行書き込みが基本になります。

既にサンプルへのリンクが挙げられていますが、行数を数えながら、1行ずつ
データを読み込み、1行ずつデータを書き込みます。指定行になったときに、
文字列を追加する処理を実行するだけです。

葉月さんの案のように一度 IList 等の入れ物に全てのデータを読み込むのも
よく使われる手法です。ファイルサイズが大きい場合を想定すると、1行
読んだ後に1行書き込みする方法も使われます。

同じファイルに書き込むかどうかも重要な条件です。同じファイルに
読み書き同時にはできない為、全てのデータをメモリ上に読み込んでおくか、
別ファイル名で保存した後、元のファイルを削除し、処理後のファイルを
元のファイルの場所に移動させたりします。
投稿者 葉月  (社会人) 投稿日時 2010/11/7 21:26:14
私が把握しきってないので、サンプルはやめておきますが――
たとえば、5行目ごとに改行を入れたいんだったら――
if文を使い、5で割りきれる時に追加する文字列を入れれば、
どうでしょうか?
読み込みの段階でIListで格納し、追加を終えたIListを元に
書き込みを行えば実現できますね。

そういった単純な話ではなく――
特定の条件下で、動的に追加したい要望だったら、具体的な
条件を提示してください。
投稿者 bcltkn  (中学生) 投稿日時 2010/11/7 18:21:26
指定行目に任意の文字列を書き込んで保存、ということをしたいのですが、どうやったらよいでしょうか?

日本語わかりにくかったらすみません。