2016-09-26 4 views
1

Я новичок в C#, и я пишу текст в файл, для этого я использую исходный код, который я нашел на поиск Google:Почему StreamWriter не может писать текст в файл в C#?

FileStream fs = System.IO.File.OpenWrite(Server.MapPath("~/FILE/") + logFile); 
StreamWriter sw = new StreamWriter(fs); 

//sw.Write(DateTime.Now.ToString() + " sent email to " + email); 
sw.Write(" sent email to "); 

fs.Close(); 

Этот код работает, но когда я открываю текстовый файл, я не вижу в нем никаких данных, что происходит? Как я могу решить эту проблему?

+0

Попробуйте https://msdn.microsoft.com/en-us/library/8bh11f1k.aspx и https://www.google.com/#q=c-sharp+write+text+file –

+0

Попробуйте закрыть 'sw' сначала, чтобы убедиться, что он сбрасывает то, что вы написали, прежде чем закрыть' fs' или еще лучше, но поместите оба в ['using' statements] (https://msdn.microsoft.com/en-us/library/yh598w02 .aspx). – juharr

+0

@juharr Я предполагаю, что писатель автоматически также закроет поток, который не работает. – HimBromBeere

ответ

1

Изменен ваш код, как показано ниже. надеюсь, что вы ищете такого рода.

using (FileStream fs = System.IO.File.OpenWrite(Server.MapPath("~/FILE/") + logFile)) 
{ 
    using (StreamWriter sw = new StreamWriter(fs)) 
    { 
     //sw.Write(DateTime.Now.ToString() + " sent email to " + email); 
     sw.Write(" sent email to "); 
    } 
    fs.Close(); 
} 
0

Попробуйте просто File.AppendAllText

File.AppendAllText(Path.Combine(Server.MapPath("~/FILE/"), logFile), 
    string.Format("{0} sent email to {1}", DateTime.Now, email)); 

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

+0

спасибо, есть способ решить мой код? Я хочу писать с этим кодом. –

+0

@behi behi: если ваша цель - просто добавить файл журнала, тогда 'File.AppendAllText' сделает это за вас (открытые потоки, писатели, а затем закройте тем самым надлежащим образом). 'FileStream' и' StreamWriter' просто привносят сложность в ваш код. Потоки и писатели - это путь, когда вам нужно реализовать сложный код с условиями, стереть, перезаписать и т. Д. –

+0

спасибо моему другу, ваше право, но в моей компании мой босс сказал, что просто напишите с этим !. –

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