私はユーティリティに取り組んでいます。
ファイルの先頭にデータを追加したいのですが、追加ではなく上書きです。
例: file.txt を考えてみましょう:
ここに存在する何か
ここで、現在の行の前に「ここにもっと存在するもの」を追加したいと思います。2 FileStreams を使用せずにできる方法はありますか?
私はユーティリティに取り組んでいます。
ファイルの先頭にデータを追加したいのですが、追加ではなく上書きです。
例: file.txt を考えてみましょう:
ここに存在する何か
ここで、現在の行の前に「ここにもっと存在するもの」を追加したいと思います。2 FileStreams を使用せずにできる方法はありますか?
いいえ。ファイル システムは基本的に、ファイルへのデータの挿入をサポートしていません。ファイルの末尾に追加するか、既存のデータを上書きします。少なくとも、これをサポートしているファイル システムは知りませんし、標準の API もサポートしていません。
他の方法でファイルを変更するには、必要に応じて古いファイルから読み取る新しいファイルを作成するのが最善の方法です (この場合は、前のテキストを作成した後)。次に、古いファイルを削除し、新しいファイルの名前を古いファイルと同じ名前に変更します。
(これのより安全なバージョンには、古いファイルの名前を変更し、次に新しいファイルの名前を変更してから、古いファイルを削除することが含まれます。これにより、問題が発生した場合の回復が可能になります。)
いいえ。ファイルにはワープロのような挿入モードはありません。
申し訳ありませんが、それはあなたが聞きたいことではありませんが、事実です。
はい
FileStream fs = new FileStream( path2, FileMode.OpenOrCreate, FileAccess.ReadWrite );
sw = 新しい StreamWriter( fs );
sw.BaseStream.Seek( 0, 0 );
sw.WriteLine( "新しいテキストを書く" );
sw.close()
このメソッドは、挿入と置換と同様に、既存のデータを上書きします。