2015-12-29 2 views
0

Я пишу/читаю текст файла с помощью C#.Как написать много строк в текстовом файле?

Мой метод:

public static void Save(List<DTOSaveFromFile> Items) 
{ 
    File.WriteAllLines(dataPath, (from i in Items select i.Serialize()).ToArray(), Encoding.Default); 
} 

Это всегда имеет приоритет над данными и вставить только 1 строку. Как вставить много строк и не переопределять перед строк.

+0

Можете ли вы показать пример ввода и вывода образца? –

+0

Возможный дубликат [Как добавить новую строку в txt-файл] (http://stackoverflow.com/questions/8255533/how-to-add-new-line-into-txt-file) –

+0

Пример ввода: user1 \t sampleemail @ gmail.com \t 16:43 – fds

ответ

1

Попробуйте метод File.AppendAllLines:

public static void Save(List<DTOSaveFromFile> Items) 
{ 
    File.AppendAllLines(dataPath, (from i in Items select i.Serialize()).ToArray(), Encoding.Default); 
} 

Из MSDN:

Дописывает строки в файл, а затем закрывает файл.

Таким образом, это предотвратит перезапись файла.

+0

У меня нет файла File.AppendAllLines, есть только File.AppendAllText. Если вы меняете файл File.AppendAllText, это показывает ошибку, подобную этому. 'Аргумент 2: не могу преобразовать из 'string []' в 'string'' – fds

+0

Я использую .NET 3.5. Благодарю. – fds

0

Попробуйте

public static void Save(List<DTOSaveFromFile> Items) 
{ 
    using (StreamWriter sw = File.AppendText(path)) 
    { 
     foreach(DTOSaveFromFile d in Items) 
      sw.WriteLine(d.Serialize(), Encoding.Default); 
    } 
} 
+0

Итак, файл содержит только AppendAllText. Вы используете StreamWrite? – fds

+0

Извините, я тестировал ваш ответ на вопрос, но у него есть ошибка: 'Аргумент 1: невозможно преобразовать из 'System.Collections.Generic.IEnumerable >' to 'string' ' – fds

+0

исправлено Ошибка. – J3soon

Смежные вопросы