如果您对数据文件的编写方式灵活,并且不介意它不太适合文本编辑器,您可以使用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();
Console.WriteLine("{0},{1}", position, line);
position = reader.BaseStream.Position;
}
}
BinaryReader没有缓冲,因此您可以获取正确的位置以便稍后存储和使用。唯一麻烦的是从行中解析名称,这可能需要使用StreamReader。