Как дописать данные в уже существующий бинарный файл C#

322
05 января 2017, 04:43

Всем доброго времени суток, помогите пожалуйста разобраться как дописать данные в бинарный файл ? Есть код который записывает значение в файл :

using (BinaryWriter WriteNr = new BinaryWriter(
    File.Open(
        path2, 
        FileMode.OpenOrCreate, 
        FileAccess.Write, 
        FileShare.ReadWrite
    )
))
{
    WriteNr.Write(Line);
    WriteNr.Close();
}

Но при добавлении новой записи, старая стирается, тоесть файл перезаписывается, как сделать что бы старые записи сохранялись а новые добавлялись ? Помогите пожалуйста разобраться.

При чтении файла все равно попадают только последние данные, вот как читаю файл:

using (BinaryReader reader2 = new BinaryReader(
    File.Open(
              path2, 
              FileMode.Open, 
              FileAccess.Read, 
              FileShare.ReadWrite
              )
)) 
{ 
      while (reader.PeekChar() > -1) 
     { Nr++; Line = reader.ReadInt32();} 

Тоесть мне нужно от начала до конца прочитать и если нет совпадений записать, а проверить я не могу потому как данные постоянно берутся последние записанные, а не по порядку

Answer 1

Смени FileMode.OpenOrCreate на FileMode.Append и будет дозапись.

Пример дозаписи:

private static void AppendData(string filename, int intData, string stringData, byte[] lotsOfData)
{
    using (var fileStream = new FileStream(filename, FileMode.Append, FileAccess.Write, FileShare.None))
    using (var bw = new BinaryWriter(fileStream))
    {
        bw.Write(intData);
        bw.Write(stringData);
        bw.Write(lotsOfData);
    }
}
READ ALSO
В чем выигрыш от реализации абстрактным классом интерфейса?

В чем выигрыш от реализации абстрактным классом интерфейса?

В ADONET есть классы, наследуются от абстрактных, а абстрактные классы в свою очередь реализуют интерфейс

287
Как добавить/получить ряд в Linq?

Как добавить/получить ряд в Linq?

Не могу разобраться как добавить новый ряд в таблицу sql

287
CORS и IIS - существуют ли стандартные средства ?

CORS и IIS - существуют ли стандартные средства ?

Возникла необходимость выполнять кроссдоменный запрос к приложению, поднятому на IIS на другом доменеНужно обращаться к веб-сервису

294