String Writer записывает в текстовый файл

У меня есть 100 текстовых полей, и я пытаюсь записать весь текст из этих текстовых полей в текстовый файл, это мой код:

protected void Page_Load(object sender, EventArgs e)
{
    for (int i = 0; i <= 9; i++)
    {
        for (int j = 0; j <= 9; j++)
        {
            TextBox tb = new TextBox();
            tb.MaxLength = (1);
            tb.Width = Unit.Pixel(40);
            tb.Height = Unit.Pixel(40);
            // giving each textbox a different id  00-99
            tb.ID = i.ToString() + j.ToString();  
            Panel1.Controls.Add(tb);                       
        }
        Literal lc = new Literal();
        lc.Text = "<br />";
        Panel1.Controls.Add(lc);
    }
}

protected void btnShow_Click(object sender, EventArgs e)
{
    StringWriter stringWriter = new StringWriter();
    foreach (Control control in Panel1.Controls)
    {
        var textBox = control as TextBox;   
        if (textBox != null)
        {
            if (string.IsNullOrEmpty(textBox.Text))
            {                
                textBox.Style["visibility"] = "hidden";
            }
            // Write text to textfile.
            stringWriter.Write("test.txt", textBox.Text+","); 
        }  // end of if loop              
    }
}

Я создал файл с именем test.txt в папке dev (я полагаю, там, где он должен быть), в нем нет ошибок, но в текстовом файле нет текста. Это правильный способ сделать это? Потому что, когда я пытался выполнить отладку, значение stringWriter будет начинаться с test.txt в первом цикле и test.txttest.txt во втором цикле.


person user2376998    schedule 25.06.2013    source источник
comment
где ваш файл определен здесь   -  person MDMalik    schedule 25.06.2013
comment
Извините, но я не знаю, что вы имели в виду   -  person user2376998    schedule 25.06.2013
comment
ваш путь к выходному файлу не был определен   -  person MDMalik    schedule 25.06.2013
comment
выходной файл? я хочу просто записать в файл test.txt, который я создал?   -  person user2376998    schedule 25.06.2013
comment
проблема в том, что текстовый файл должен быть в папке веб-разработчика, я не могу поместить его в другое место? потому что он не может обнаружить текстовый файл, если я помещу его в другое место.   -  person user2376998    schedule 25.06.2013


Ответы (4)


данные не будут сохранены в файл, если вы оставите StringWriter открытым. в конце btnShow_Click Закройте его:

StringWriter.Close();

or

using (StringWriter stringwriter=new StringWriter())
{

//here is your code....
}
person ako    schedule 18.04.2015

Вам лучше использовать класс StreamWriter:

StreamWriter sw = new StreamWriter("test.txt");  // You should include System.IO;

var textBox = control as TextBox;   
if (textBox != null)
{
   if (string.IsNullOrEmpty(textBox.Text))
   {
     textBox.Style["visibility"] = "hidden";
   }
}
sw.Write(textBox.Text + ","); 
person r.mirzojonov    schedule 25.06.2013

Проблема заключается в отправке кода

 protected void btnShow_Click(object sender, EventArgs e)
{
        System.IO.StreamWriter stringWriter= new System.IO.StreamWriter("c:\\test.txt");
        foreach (Control control in Panel1.Controls)
        {
              var textBox = control as TextBox;   
              if (textBox != null)
             {
                             if (string.IsNullOrEmpty(textBox.Text))
                             {
                             textBox.Style["visibility"] = "hidden";
                             }

            stringWriter.Write( textBox.Text+","); // Write text to textfile. 

        }  // end of if loop              
    }

Ссылка на MSDN и MSDN

person MDMalik    schedule 25.06.2013
comment
привет спасибо за ответ, текстовый файл все еще пуст. я не понимаю, как работает стримрайтер - person user2376998; 25.06.2013

Попробуйте сбросить поток непосредственно перед выходом из события нажатия кнопки, используя:

stringWriter.Flush();
person MrClan    schedule 14.02.2015