2009-06-30 8 views
1

私はユーティリティーを開発中です。FileStreamトップにデータを追加

ファイルの先頭にデータを追加したいが、追加しないで上書きしている。例えばのために

:今、私は現在の行の前に「何かがよりここに既存の」追加したい

ここで、既存の

何か:file.txtなどを考えてみましょう。 2つのFileStreamを使用せずに私ができることはありますか?

+0

コードを表示してください! – Cerebrus

+0

脳、私はできるだけ簡単に言いました。私はジョンの答えを見つけました。ありがとう。 – cbrcoder

答えて

2

いいえ。ファイルシステムは基本的にファイルへのデータの挿入をサポートしていません。ファイルの末尾に追加するか、既存のデータを上書きします。少なくとも、私はをサポートするファイルシステムについては知らないし、標準APIはサポートしていません。

他の方法でファイルを変更するには、新しいファイルを作成し、必要に応じて古いファイルから読み込むのが最善の方法です(前のテキストを書き込んだ後の場合)。その後、古いファイルを削除し、新しいファイルの名前を古いファイルと同じ名前に変更します。

(本のより安全なバージョンが古いファイルを削除、その後、新しいファイルの名前を変更し、その後、古いファイルの名前を変更する必要 - 。何がうまくいかない場合は、これは回復することができます)

+0

ありがとうございました。奇妙なことだけど。 Thx私は2つのストリームを使用して取得します。 – cbrcoder

1

番のファイルの挿入を持っていませんこれはワードプロセッサと同様です。

申し訳ありませんが、あなたが聞きたいものではなく、その事実。

+0

ああ...私は基本的に、応答時間と正確さをJon Skeetと結びつけています...そして私はまだ失います。彼の偉大さを見てください。 – abelenky

0

はい

のFileStream FS =新しいFileStreamを(パス2、FileMode.OpenOrCreate、FileAccess.ReadWrite)。

sw =新しいStreamWriter(fs);

sw.BaseStream.Seek(0、0);

sw.WriteLine( "write new text");

sw.close()

この方法は、既存のデータ、同類のインサートを上書きして置き換えられます。

関連する問題