2

ファイルを変更するとき、常にファイル全体を書き直す必要がありますか?それとも、ファイル全体を書き直さなくても、ファイルの小さな部分を見つけて変更することは可能ですか?

4

3 に答える 3

6

データを挿入または削除しない場合は、ファイルを書き換える必要はありません。既存のバイトを新しい値に置き換えるか、ファイルに追加します。

挿入または削除する必要がある場合は、その時点からファイルを書き直すだけで済みます。ファイル全体を書き換える必要があるのは、最初にバイトを挿入する場合だけです。

読み取り権限と書き込み権限の両方でファイルを開いても問題ありません。そうすれば、ファイルを検索して探しているものを見つけることができ、位置を取得したら(メモリから、書き込みポインターは読み取りポインターとは別になります)、データを心ゆくまで上書きできます=)

于 2012-07-26T04:57:17.057 に答える
4

データの長さを変更しない場合は、いつでもファイル内の適切な位置を探して、新しいバイト セットを書き込むことができます。これにより、元のバイトが置き換えられます。

于 2012-07-26T04:57:24.800 に答える
0

次の 2 つの方法があります。

  • 使用StreamWriter sw = new StreamWriterすると、ファイルからデータが削除されます。
  • 変更のみを行うには、ファイル データをList<string>. これは私にとってはうまくいきます:

    List<string> lines_list = new List<string>();
    int file_l = 0
    
    StreamReader sr_temp = new StreamReader(_path);
    string line;
    
    while ((line = sr_temp.ReadLine()) != null)
    {
         lines_list.Add(line);
         file_l++;
    }
    
    sr_temp.Close();
    StreamWriter sw = new StreamWriter(_path);
    for (int i = 0; i < file_l; i++)
    {
          sw.WriteLine(lines_list[i]);
    }
    
    //here you add some data
    sw.Close();
    
于 2012-07-26T04:57:33.547 に答える