Ich versuche, die Zahlen 0-28,110,000 in eine Textdatei mit Nullen der kleineren Zahlen zu schreiben (ob Sie es glauben oder nicht, das ist KEINE Hausaufgabe).C# -Problem mit StreamWriter zu Textdatei
Desired Output
00000001
00000002
00000003
...
28109999
28110000
Aber wenn ich diese in eine Textdatei zu schreiben, sieht die Ausgabe wie:
00000001
00000002
00000003
...
27145011
27
Mit der letzten Zahl in der Mitte zu stoppen. Kann jemand sehen, warum das passiert und wie ich es korrigieren kann?
Voll Code
long lastCode = 28110000;
int padSize = (lastCode == 0) ? 1 : (int)Math.Log10(lastCode) + 1;
String filename = @"C:\Documents and Settings\All Users\Desktop\" + lastCode + "_sequentialCodes.txt";
StreamWriter writer = new StreamWriter(filename, false, Encoding.ASCII);
writer.AutoFlush = true;
for (int i = 1; i < lastCode + 1; i++)
{
writer.WriteLine(i.ToString().PadLeft(padSize, '0'));
if (i % 100 == 0)
{
Console.Write(".");
}
}
writer.Close();
Console.WriteLine();
Console.WriteLine(lastCode + " codes written to \n" + filename);
Console.Read();
Für mich sieht die Ausgabe so aus, als wäre der Schreiber nicht geschlossen oder geleert, obwohl ich deutlich sehe, dass Ihr Code dies tut. – codymanix
Es gibt keinen Leser im Code. Dies ist eine Schreiboperation. – MAW74656
Schaust du die Datei zu früh an, bevor die Close() -Anweisung ausgeführt wird? Verwenden Sie die Anweisung * using *, um Probleme mit Ausnahmen zu vermeiden. –