Streamwriter перезаписывает текст в txtfile

Есть ли какой-нибудь способ снова открыть streamwriter без создания нового объекта для записи? Потому что в момент вызова WriteOdd стример перезаписывает WriteEven, который вызывается перед ним :/

public void WriteEven()
        {

           StreamWriter writer = new StreamWriter(FILENAME);   
           for (int i = 0; i < array.Length; i+= 2)
            {
                Console.WriteLine(array[i]);

                writer.WriteLine("EvenNumbers: " + array[i]);

            }

            writer.Close();


        }

        public void WriteOdd()
        {
            StreamWriter writer = new StreamWriter(FILENAME);
            for (int i = 1; i < array.Length; i += 2)
            {
                Console.WriteLine(array[i]);


                writer.WriteLine("OddNumbers: " + array[i]);


            }
            writer.Close();
        }   

Спасибо


person user979649    schedule 05.10.2011    source источник


Ответы (2)


Используйте перегрузку, которая спрашивает вас, хотите ли вы добавить

public StreamWriter(
    string path,
    bool append
)

http://msdn.microsoft.com/en-us/library/36b035cb.aspx

person Muhammad Hasan Khan    schedule 05.10.2011
comment
@user979649 измените строку на StreamWriter Writer = new StreamWriter(FILENAME, true); - person Muhammad Hasan Khan; 05.10.2011

Вы можете передать объект потока методам WriteEven() и WriteOdd().

public void WriteOdd(StreamWiter writer)
{
  for (int i = 1; i < array.Length; i += 2)
  ...
}
person kv-prajapati    schedule 05.10.2011