ファイルから読み取る関数と、ファイルに書き込む関数があります。読み書きしようとしているファイルは、1 から 3000 までの数字を順番に並べたものです。ファイルを問題なく読み取り、 という変数に保存しますnumbers
。何らかの理由で、ファイルを書き込むと、最初の 2913 行が正しく書き込まれますが、これが出力の最後です。
2908
2909
2910
2911
2912
2913
2
プログラムを実行するたびに、ファイルは番号 2914 の途中で終了します。プログラムは例外をスローしません。なぜこの動作が発生するのですか?
これが私のコードです:
Sub Main() As Integer
Dim numbers As New List(Of String)
ReadFile(numbers, "C:\test.txt")
WriteFile(numbers, "C:\test2.txt")
End Function
Private Sub ReadFile(ByRef lines As List(Of String), _
ByVal filePath As String)
Dim sr As New System.IO.StreamReader(filePath)
Do While sr.Peek <> -1
lines.Add(sr.ReadLine)
Loop
End Sub
Private Sub WriteFile(ByVal lines As List(Of String), _
ByVal filePath As String)
Dim sw As New System.IO.StreamWriter(filePath, False)
For Each line In lines
sw.WriteLine(line)
Next
End Sub