Запись в один и тот же файл с помощью двух операторов using и двух операторов записи.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Запись в один и тот же файл с помощью двух операторов using и двух операторов записи.

Сообщение Anonymous »

Я пытаюсь открыть файл на C#, затем записать в него текст и завершить сжатием массива байтов в тот же файл. Итак, файл, который я хочу создать, выглядит примерно так:

Код: Выделить всё

sometextinascii
somemoretextinascii
BUNCHOFNONHUMANREADABLEBYTES
и я сделал следующее:

Код: Выделить всё

// Code where we get values of the following variables:
// string filename
// Byte[] buffer
using (FileStream file = new(filename, FileMode.Create, FileAccess.Write))
{
using (StreamWriter writer = new(file))
{
writer.WriteLine("sometext");
writer.WriteLine("somemoretext");
}
using (GZipStream zipStream = new(file, CompressionMode.Compress))
{
zipStream.Write(buffer, 0, buffer.Length);
}
}
но это не работает. Когда я запускаю этот код, я получаю сообщение об ошибке

Код: Выделить всё

System.ArgumentException: 'Stream does not support writing. (Parameter 'stream')'
когда создается переменная zipStream.
Чего я не понимаю, так это того, что если я удалю StreamWriter часть кода, то код работает нормально. Итак, у меня два вопроса:
  • Закрывает ли StreamWriter каким-то образом файл, когда он закрывается сам?
  • Если да, то как я могу это предотвратить? Если нет, то в чем причина моей ошибки?


Подробнее здесь: https://stackoverflow.com/questions/788 ... wo-writers
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»