Подтвердить что ты не робот

Каков самый простой способ записать содержимое StringBuilder в текстовый файл в .NET 1.1?

Мне нужно использовать StringBuilder вместо List of string из-за того, что вы застряли с .NET 1.1 для этого проекта. Это действительно мешает моему стилю и заставляет меня почувствовать, что я нахожусь в изнасилованных старых леопардовых шкурах и вытаскиваю кусковой клуб через грязь.

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

System.IO.File.WriteAllText(@"C:\MyDir\MyNewTextFile.txt",sbMyStringBuilder.ToString());

Ответ 3

Нет необходимости в 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 Метод (String) (.NET Framework 1.1)

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

Ответ 4

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

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

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

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