从位置读取文件

时间:2011-09-29 10:56:39

标签: c# file-io

FileStream infile = new FileStream(@"C:\Users\John\Desktop\ProjectNew\nov.txt",     FileMode.Open, FileAccess.Read);
        int position = x.Length;
        infile.Seek(position, SeekOrigin.Begin);

但Seek方法返回数字。如何从字符串中的位置读取文件'infile'?

3 个答案:

答案 0 :(得分:6)

这就是你要追求的吗?假设你想从第100位开始阅读......

       using (FileStream fs = new FileStream(@"file.txt", FileMode.Open, FileAccess.Read))
        {
            fs.Seek(100, SeekOrigin.Begin);

            byte[] b = new byte[fs.Length - 100];
            fs.Read(b, 0, (int)(fs.Length - 100));

            string s = System.Text.Encoding.UTF8.GetString(b);
        }

答案 1 :(得分:2)

Seek方法应该返回一个数字,即流中的新位置。现在只需调用你想要的任何Read函数。

答案 2 :(得分:0)

Seek()仅将文件指针放在其他位置。如果在搜索之前执行读操作,它将从文件的开头读取。如果您在搜索后阅读,它将从位置开始阅读。

所以要从头到尾阅读文件,请Seek(),然后Read()ReadToEnd()