Вопрос по c#, .net, stringbuilder, file-io, windows-ce – Какой самый простой способ записать содержимое StringBuilder в текстовый файл в .NET 1.1?

44

Я должен использовать StringBuilder вместо списка строк, потому что застрял с .NET 1.1 для этого проекта. Это'это действительно ограничивает мой стиль и заставляет меня чувствовать, что яЯ одета в рваную старую леопардовую шкуру и волочусь по грязи.

Во всяком случае, я хочу написать серию отладочных сообщенийЯ записал в файл для изучения на досуге, так как на экране слишком много информации (MessageBox нене иметь полос прокрутки). Некоторые из простых способов написать файл неПохоже, что он доступен в .NET 1.1. Я тоже неу него нет доступа к Environment.Newline для чистого разделения строк, которые я добавляю (AppendLine также недоступна в этой архаичной версии StringBuilder).

Полагаю, хватит ныть ... Какой самый простой способ в .NET 1.1 (C #) записать содержимое StringBuilder в файл? Нет "С" диск на портативное устройство, поэтому я считаю, что мне придется написать его "\ HereIAm.txt» или так.

@ ДавидХайкин извините, молодой наивный программист здесь. В чем проблема с строителем строк? dckuehn
@dckuehn: я думаю, что он просто выражал сочувствие из-за доисторических инструментов, с которыми мне приходилось работать. B. Clay Shannon
Чувак. Мне так жаль. Dmitriy Khaykin

Ваш Ответ

5   ответов
6

Нет необходимости в:StringBuilder

string path = @"c:\hereIAm.txt";
if (!File.Exists(path)) 
{
    // Create a file to write to.
    using (StreamWriter sw = File.CreateText(path)) 
    {
        sw.WriteLine("Here");
        sw.WriteLine("I");
        sw.WriteLine("am.");
    }    
} 

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

sw.Write(stringBuilder.ToString());

StreamWriter.Write Метод (Строка) (.NET Framework 1.1)

Запись текста в файл (.NET Framework 1.1)

66

У вас все еще есть доступ к:StreamWriter

System.IO.StreamWriter file = new System.IO.StreamWriter(@"\hereIam.txt");
file.WriteLine(sb.ToString()); // "sb" is the StringBuilder

Из документации MSDN:Запись в текстовый файл (Visual C #).

Файл StreamWriter = новый StreamWriter (@ "\ HereIAm.txt»); file.WriteLine (SB.ToString ()); // "SB» такое StringBuilder B. Clay Shannon
83

Я знаю, что это старый пост, и он хочет получить ответ для .NET 1.1, ноЭто уже очень хороший ответ. Я подумал, что было бы хорошо иметь ответ для тех людей, которые попадают на этот пост, у которых может быть более свежая версия .Net Framework, таких как я, когда я искал ответ на тот же вопрос.

В этих случаях есть еще более простой способ записать содержимое StringBuilder в текстовый файл. Это можно сделать одной строкой кода. Это может быть не самым эффективным, но это неНа самом деле вопрос был в этом.

System.IO.File.WriteAllText(@"C:\MyDir\MyNewTextFile.txt",sbMyStringBuilder.ToString());
Начиная с версии .net 2.0 James Westgate
Спасибо, что подумали о других. Вы, конечно, помогли мне. Peter
счастливые времена:) ... иногда нам просто нужно получитьсделано Mike M
2

Если вам нужно написать построчно от строителя строк

StringBuilder sb = new StringBuilder();
sb.AppendLine("New Line!");

using (var sw = new StreamWriter(@"C:\MyDir\MyNewTextFile.txt", true))
{
   sw.Write(sb.ToString());
}

Если вам нужно написать весь текст как одну строку из строителя строк

StringBuilder sb = new StringBuilder();
sb.Append("New Text line!");

using (var sw = new StreamWriter(@"C:\MyDir\MyNewTextFile.txt", true))
{
   sw.Write(sb.ToString());
}
4

StreamWriter доступно для NET 1.1. и дляКомпактный каркас, Просто откройте файл и примените ToString к вашему StringBuilder:

    StringBuilder sb = new StringBuilder();
    sb.Append(......);

    StreamWriter sw = new StreamWriter("\\hereIAm.txt", true);
    sw.Write(sb.ToString());
    sw.Close();

Также обратите внимание, что вы говорите, что хотите добавить отладочные сообщения в файл (например, в журнал). В этом случае правильный конструктор для StreamWriter - это тот, который принимаетappend логический флаг. Если true, то он пытается добавить существующий файл или создать новый, если это не такт существует.

Это C # и VB смешанные ... Darren
Извините, перевод на лету, исправлено Steve

Похожие вопросы