Visual studio 2012 在我修改文本文件后,StreamReader没有读取文本文件的第二行
我想不出来。 我的项目是获取一个文本文件,将其读入我的程序,更改其值,然后将其重写回该文本文件。 程序第一次可以运行,但第二次运行时,我用来读取文件的下一个循环表示第二行没有文本。代码在第一个循环后停止并启动应用程序。有人知道出了什么问题吗 以下是我使用的StreamReader循环:Visual studio 2012 在我修改文本文件后,StreamReader没有读取文本文件的第二行,visual-studio-2012,Visual Studio 2012,我想不出来。 我的项目是获取一个文本文件,将其读入我的程序,更改其值,然后将其重写回该文本文件。 程序第一次可以运行,但第二次运行时,我用来读取文件的下一个循环表示第二行没有文本。代码在第一个循环后停止并启动应用程序。有人知道出了什么问题吗 以下是我使用的StreamReader循环: Dim inventoryReader As New StreamReader("Inventory.txt") Dim line As String Dim inventorycount
Dim inventoryReader As New StreamReader("Inventory.txt")
Dim line As String
Dim inventorycounter As Decimal = 0
Do Until inventoryReader.EndOfStream
line = inventoryReader.ReadLine()
inventoryinfo = line.Split(ControlChars.Tab)
inventory(inventorycounter, 0) = inventoryinfo(0)
inventory(inventorycounter, 1) = inventoryinfo(1)
inventorycounter += 1
Loop
inventoryreader.close()
这是我使用的StreamWriter循环:
Dim output As New StreamWriter("Inventory.txt")
For outputcounter As Integer = 0 To 16
output.WriteLine(inventory(outputcounter, 0) & ControlChars.Tab & inventory(outputcounter, 1) & ControlChars.Cr)
Next
output.WriteLine(inventory(17, 0) & ControlChars.Tab & inventory(17, 1))
output.Close()
我认为问题在于程序第二次没有读取ControlChars.Cr,但我尝试了CrLf、Lf和Nextline,但没有任何效果
谢谢大家的帮助 这不正确,您的程序将Cr+Cr+Lf写入文本文件。使StreamReader困惑的是,它将第一个Cr视为行终止符。所以当你索引inventoryinfo时,你会看到一个空行,kaboom
从代码中删除ControlChars.Cr。StreamWriter.WriteLine()不需要任何帮助,它已经写入了正确的行终止符。太棒了!这就解决了!非常感谢你!