我正在开发一个需要读取不断更新的文本文件的应用程序。我需要读取文件直到文件结束(在那一刻)并且需要记住这个位置以便我下一个文件读取。我打算用C#.net开发这个应用程序。如何在C#不提供文件处理指针的情况下执行这些部分读取并记住位置?
编辑:文件每30秒更新一次,新数据将附加到旧文件中。 我尝试保持先前读取的长度,然后从该位置读取数据,但两个应用程序无法同时访问该文件。
答案 0 :(得分:3)
您可以保持文件中读指针的最后一个偏移量。你可以这样做
long lastOffset = 0;
using (var fs = new FileStream("myFile.bin", FileMode.Open))
{
fs.Seek(lastOffset, SeekOrigin.Begin);
// Read the file here
// Once file is read, update the lastOffset
lastOffset=fs.Seek(0, SeekOrigin.End);
}
答案 1 :(得分:1)
打开文件,读取所有内容,保存您在变量中读取的字节数(让我们假设它是read_until_here
)。
下次阅读该文件时,只需获取新信息(以read_until_here
变量所在位置为准...
答案 2 :(得分:1)
我打算用C#.net开发这个应用程序。如何在C#不提供文件处理指针的情况下执行这些部分读取并记住位置?
不完全确定为什么你会担心所谓缺乏指针...我会自己调查int FileStream.Read(byte[] array, int offset, int count)
。
它允许您从缓冲区读取缓冲区,尽可能多的字节数,并告诉您实际读取了多少字节...这看起来就是您需要的所有功能。