我需要逐部分阅读一个txt文件...例如,在一个txt文件中:(age,5char_name)
17susan23wilma25fredy
我需要先阅读17susan
。换句话说,前七个字符和之后23wilma
,25fredy
但我没有读取整个文件并将文件记录子串化。有没有办法通过流式阅读器做到这一点?
记录总是 7 个字节……2 个字节表示年龄,5 个字节表示姓名和一行中的所有记录。没有跳转到下一行。
我需要逐部分阅读一个txt文件...例如,在一个txt文件中:(age,5char_name)
17susan23wilma25fredy
我需要先阅读17susan
。换句话说,前七个字符和之后23wilma
,25fredy
但我没有读取整个文件并将文件记录子串化。有没有办法通过流式阅读器做到这一点?
记录总是 7 个字节……2 个字节表示年龄,5 个字节表示姓名和一行中的所有记录。没有跳转到下一行。
我认为有解决方案:
Dim filestream As New FileStream("\records.txt", FileMode.Open)
Dim streamreader As New StreamReader(fs)
Dim buffer(7) As Char
bw.ReadBlock(buffer, 0, 7)
Console.WriteLine(buffer)
这是首先阅读的 7.. 你可以通过循环或 for.. 阅读其他内容
假设每条记录的字符数是静态的(在您的描述中为七个),您可以改用FileStream
阅读器,并使用该Read
方法一次检索七个字符。
例如:
Const chunkSize As Integer = 7
Using inputFile = File.OpenRead("namefile.txt")
Dim bytesRead As Integer
Dim buffer = New Byte(chunkSize - 1) {}
bytesRead = inputFile.Read(buffer, 0, buffer.Length)
while bytesRead = 7
'Process the buffer here
bytesRead = inputFile.Read(buffer, 0, buffer.Length)
End While
End Using
(代码未经测试,但应该接近)
如果您总是想使用前 7 个字符,您可以简单地使用 Visual Basic 代码行,例如:
Dim Result as String = Microsoft.VisualBasic.Left(string, no)
String 是您只想从中读取前七个字符的 StreamReader 行。
No 是任何整数值,它等于您要读取的字符数,在本例中为 7。
同样,您可以使用 Right 和 Mid 从右侧或中间某处选择字符串。