如果您对数据文件的编写方式很灵活,并且不介意它对文本编辑器不太友好,您可以使用 BinaryWriter 编写记录:
using (BinaryWriter writer =
new BinaryWriter(File.Open("data.txt", FileMode.Create)))
{
writer.Write("one,1,1,1,1");
writer.Write("two,2,2,2,2");
writer.Write("three,3,3,3,3");
}
然后,最初读取每条记录很简单,因为您可以使用 BinaryReader 的 ReadString 方法:
using (BinaryReader reader = new BinaryReader(File.OpenRead("data.txt")))
{
string line = null;
long position = reader.BaseStream.Position;
while (reader.PeekChar() > -1)
{
line = reader.ReadString();
//parse the name out of the line here...
Console.WriteLine("{0},{1}", position, line);
position = reader.BaseStream.Position;
}
}
BinaryReader 没有缓冲,因此您可以获得适当的位置以供以后存储和使用。唯一的麻烦是将名称解析出来,无论如何您可能都必须使用 StreamReader。