不管seek到哪里,文件的指针实际上还是指在开始的地方

解决方案 »

  1.   

    Seek方法的另外一个参数你指定了什么?
    从文件的开始/结束/当前位置开始Seek?
      

  2.   

    if (fileStream.CanSeek)
      fileStream.Seek(pos,SeekOrigin.Begin);
      

  3.   

    http://blog.csdn.net/chenyuming2004/archive/2004/12/23/226988.aspx看看是文章里面讲的情况。
      

  4.   

    SeekOrigin.Current
    表示当前的位置,你也得给出你得代码塞
      

  5.   

    我也有同感:
    string fileName = "test.txt";// write file
    FileStream filStream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write);
    BufferedStream bufStream = new BufferedStream(filStream);
    StreamWriter sWriter = new StreamWriter(bufStream);sWriter.WriteLine("Line Number One");
    sWriter.WriteLine("Line Number Two");sWriter.Flush();
    sWriter.Close();// read file
    filStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
    StreamReader sReader = new StreamReader(filStream);Console.WriteLine("\nReading File: {0}\n", fileName);
    string line = sReader.ReadLine();
    while (line != null)
    {
        Console.WriteLine(line);
        line = sReader.ReadLine();
    }Console.WriteLine("\nSeeking File: {0}\n", fileName);
    filStream.Seek(0, SeekOrigin.Begin);
    Console.WriteLine(sReader.ReadLine());
    char[] buffer = new Char[7];
    filStream.Seek(5, SeekOrigin.Current);
    sReader.Read(buffer, 0, 4);
    Console.WriteLine(new String(buffer));
    Console.WriteLine(sReader.ReadLine());filStream.Seek(-12, SeekOrigin.End);
    sReader.Read(buffer, 0, 6);
    Console.WriteLine(new string(buffer));sReader.Close();
    Console.ReadLine();这段代码执行了
    filStream.Seek(5, SeekOrigin.Current);
    sReader.Read(buffer, 0, 4);
    应该再buffer中的数据是Numb,但是结果却是Line
    不知为什么????????????