sai.2012 Ответов: 4

Проблема с потоковым писателем ?


TextWriter tw = System.IO.File.CreateText(sOutputFilePath + sOutFileName);
    if (record == "abcd")
    {
        id = 10;
        name = "John";
        string sout = "";
        sout = id + "|" + name;
        tw.WriteLine(sout);//output in file1

    }
    else if (record == "efgh")
    {
        id = 11;
        name = "Sam";
        string sout1 = "";
        sout1 = id + "|" + name;
        tw.WriteLine(sout1); output in file2
    }
    else
    {
    }

Проблема в том, что файл1 всегда пуст , только файл2 работает правильно.

Пожалуйста, проводите меня.

Что я уже пробовал:

не получаю идеи, пожалуйста, помогите мне.

4 Ответов

Рейтинг:
29

RickZeeland

Вам нужно два TextWriters:

TextWriter tw1 = System.IO.File.CreateText(sOutputFilePath + sOutFileName1);
...
TextWriter tw2 = System.IO.File.CreateText(sOutputFilePath + sOutFileName2);
Кроме того, не забудьте закрыть их, когда закончите:
tw1.Close(); 
tw2.Close();


sai.2012

Спасибо за быстрый повтор RickZeeland и ppolymorphe.

создал два тестера, и он отлично работает.

Спасибо.

Рейтинг:
20

Patrice T

Во-первых отступ ваш код правильно, она помогает чтению.

TextWriter tw = System.IO.File.CreateText(sOutputFilePath + sOutFileName);
if(record == "abcd")
{
	id=10;
	name="John";
	string sout ="";
	sout=id+ "|" +name;
	tw.WriteLine(sout);//output in file1

}
else if(record == "efgh")
{
	id=11;
	name="Sam";
	string sout1 ="";
	sout1 =id+ "|" +name;
	tw.WriteLine(sout1); output in file2
}
else
{
}


Используйте отладчик, чтобы увидеть, что делает ваш код. Мы не можем проверить ваш код, так как он не является автономной частью кода.
-----
Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что он делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]
Отладка кода C# в Visual Studio - YouTube[^]
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Рейтинг:
17

RickZeeland

Еще проще в использовании это Файл.AppendAllText, смотрите пример здесь: [dotnetperls]
Вам не нужно беспокоиться об открытии и закрытии потока, когда вы используете это.


Рейтинг:
11

sai.2012

Спасибо вам всем . Я попробовал ваше решение, оно сработало для меня.


Patrice T

Вы не должны использовать решение только для того, чтобы поговорить с нами.
Вместо этого оставьте сообщение или обновите свой вопрос.