Добавление текста в C # - PullRequest
0 голосов
/ 24 августа 2011

При изменении метода на AppendText, например writeout.AppendText (первая строка), я получаю, что StreamWriter не поддерживает ...

StreamWriter writeout = new StreamWriter(path);
        writeout.WriteLine(firstline);
        writeout.Close();

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

Ответы [ 9 ]

4 голосов
/ 24 августа 2011

Изменить StreamWriter writeout = new StreamWriter(path); на StreamWriter writeout = new StreamWriter(path, true);.

См. http://msdn.microsoft.com/en-us/library/aa328969%28v=vs.71%29.aspx.

В качестве альтернативы вы можете использовать File.AppendText, например, StreamWriter writeout = File.AppendText(path).

Или даже просто File.AppendAllText, например File.AppendAllText(path, firstline).

4 голосов
/ 24 августа 2011

Вы должны создать свой StreamWriter с явной опцией, чтобы иметь возможность APPEND к файлу. В противном случае, он всегда будет создавать новый. Попытка вызова Append, когда StreamWriter не был создан для добавления, выдает ошибку, которую вы описали.

Я не совсем уверен, но я думаю, что вы можете сделать:

StreamWriter writeout = новый StreamWriter (путь, истина);

, чтобы дать StreamWriter возможность добавлять.

Надеюсь, это поможет.

3 голосов
/ 24 августа 2011

Используйте конструктор StreamWriter writeout = new StreamWriter(path, true);

3 голосов
/ 24 августа 2011

Вы можете использовать второй параметр конструктора StreamWriter.
StreamWriter writeout = new StreamWriter(path, true);

2 голосов
/ 24 августа 2011

Создайте StreamWriter с дополнительным логическим параметром, который указывает, добавлять или не добавлять существующий файл:

StreamWriter writeout = new StreamWriter(path, true);
2 голосов
/ 24 августа 2011
StreamWriter writeout = new StreamWriter(path,true); //true indicates appending
        writeout.WriteLine(firstline);
        writeout.Close();
1 голос
/ 24 августа 2011
try
{
    StringBuilder sb = new StringBuilder();
    StreamReader sr = new StreamReader(Path);
    sb.AppendLine(sr.ReadToEnd());
    sb.AppendLine("= = = = = =");
    sb.AppendLine(fileName + " ::::: " + time);
    sr.Dispose();
    if (sw == null)
    {
        sw = new StreamWriter(Path);
    }
    sw.Write(sb.ToString());
    sw.Dispose();

}
catch (Exception e)
{
}
1 голос
/ 24 августа 2011

А как насчет этого?

var lines = new List<string>();
// load lines
System.IO.File.AppendAllLines(path, lines);
1 голос
/ 24 августа 2011

Сначала найдите конец потока, установив StreamWriter.BaseStream.Position в конец потока, а затем продолжите как обычно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...