私はユーティリティーを開発中です。FileStreamトップにデータを追加
ファイルの先頭にデータを追加したいが、追加しないで上書きしている。例えばのために
:今、私は現在の行の前に「何かがよりここに既存の」追加したい
ここで、既存の
何か:file.txtなどを考えてみましょう。 2つのFileStreamを使用せずに私ができることはありますか?
私はユーティリティーを開発中です。FileStreamトップにデータを追加
ファイルの先頭にデータを追加したいが、追加しないで上書きしている。例えばのために
:今、私は現在の行の前に「何かがよりここに既存の」追加したい
ここで、既存の
何か:file.txtなどを考えてみましょう。 2つのFileStreamを使用せずに私ができることはありますか?
いいえ。ファイルシステムは基本的にファイルへのデータの挿入をサポートしていません。ファイルの末尾に追加するか、既存のデータを上書きします。少なくとも、私はがをサポートするファイルシステムについては知らないし、標準APIはサポートしていません。
他の方法でファイルを変更するには、新しいファイルを作成し、必要に応じて古いファイルから読み込むのが最善の方法です(前のテキストを書き込んだ後の場合)。その後、古いファイルを削除し、新しいファイルの名前を古いファイルと同じ名前に変更します。
(本のより安全なバージョンが古いファイルを削除、その後、新しいファイルの名前を変更し、その後、古いファイルの名前を変更する必要 - 。何がうまくいかない場合は、これは回復することができます)
ありがとうございました。奇妙なことだけど。 Thx私は2つのストリームを使用して取得します。 – cbrcoder
番のファイルの挿入を持っていませんこれはワードプロセッサと同様です。
申し訳ありませんが、あなたが聞きたいものではなく、その事実。
ああ...私は基本的に、応答時間と正確さをJon Skeetと結びつけています...そして私はまだ失います。彼の偉大さを見てください。 – abelenky
はい
のFileStream FS =新しいFileStreamを(パス2、FileMode.OpenOrCreate、FileAccess.ReadWrite)。
sw =新しいStreamWriter(fs);
sw.BaseStream.Seek(0、0);
sw.WriteLine( "write new text");
sw.close()
この方法は、既存のデータ、同類のインサートを上書きして置き換えられます。
コードを表示してください! – Cerebrus
脳、私はできるだけ簡単に言いました。私はジョンの答えを見つけました。ありがとう。 – cbrcoder