2016-02-21 16 views
5

Próbuję użyć StreamWriter do rejestrowania wyszukiwania za każdym razem, gdy ktoś wyszukuje mój program. Mogę pobrać StreamWriter, aby napisać nowy plik, ale nie tworzy on żadnej treści. Próbowałem wyszukiwać google do poprawnego użycia i dla mnie wygląda na to, że zrobiłem to poprawnie. Jeśli możesz przeczytać mój kod i powiedzieć mi, gdzie się mylę, będę bardzo wdzięczny!C# - StreamWriter tworzy mój plik, ale nie ma zawartości

StreamWriter write = new StreamWriter("searchLogFile.dat"); 
write.WriteLine(gameTitle + " === " + string.Format("{0:C}", saleValue)); 

Tak powinno wydrukować linii coś w rodzaju: „TYTUŁ === $ 100.00 Więcej”

Odpowiedz

9

jeszcze nie zamknął pisarza. Program piszący buforuje dane, więc jeśli po prostu pozwolisz, aby zbierał śmieci bez płukania lub zamykania, uchwyt pliku zostanie zamknięty bez zapisywania danych do pliku.

Należy idealnie to zrobić z using stwierdzeniem:

using (StreamWriter write = new StreamWriter("searchLogFile.dat")) 
{ 
    write.WriteLine(gameTitle + " === " + string.Format("{0:C}", saleValue)); 
} 

ten sposób pisarz zostaną zamknięte, nawet jeśli jest wyjątek. Nabądź nawyku używania instrukcji using dla typów implementujących IDisposable.

Proponuję również użyć File.WriteAllText, jeśli chcesz zapisać tylko jedną wartość do pliku. Można także skorzystać z przeciążeniem TextWriter.WriteLine który akceptuje ciągi formatu, aby ten kod prostsze:

writer.WriteLine("{0} === {1:C"}, gameTitle, saleValue); 

Albo z C# 6:

writer.WriteLine($"{gameTitle} === {saleValue:C}"); 

lub wszystkie za jednym zamachem:

File.WriteAllText("searchLogFile.dat", $"{gameTitle} === {saleValue:C}"); 
Powiązane problemy