私は数字の0〜28,110,000を0のパディングに小さな数字を入れてテキストファイルに書き込もうとしています(信じるかどうか、これは宿題ではありません)。StreamWriterをテキストファイルに使用するC#の問題
Desired Output
00000001
00000002
00000003
...
28109999
28110000
しかし、私はテキストファイルにこれを書いたときに、出力は次のようになります。途中で停止し、最後の数で
00000001
00000002
00000003
...
27145011
27
。 これがなぜ起こっているのか、どのように修正できるのか誰にでも見てもらえますか?リーダーがクローズまたはフラッシュされていなかったように私ははっきりとあなたのコードはこれを行い参照が
完全なコードは私に
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();
私には、あなたのコードがこれをしているのをはっきりと見ても、出力がライターが閉じられていないか、フラッシュされていないように見えます。 – codymanix
コードには読者がいません。これは書き込み操作です。 – MAW74656
Close()ステートメントが実行される前に、ファイルが早すぎますか?例外のトラブルを避けるには、* using *ステートメントを使用します。 –