又没有哪位大侠能给我讲讲Seek方法的使用方法,在什么时候使用,有什么用,拜谢了!
                

解决方案 »

  1.   

    二进制方式读写文件的时候。直接跳转到你知道的位置进行文件修改。常见的做法比如:
    二进制方式打开文件,跳转到最后。追加一段字节。以扩展二进制数据文件。
    例如//定义字节流对象,打开文件。离开using块则自动调用stream对象的Dispose方法并释放stream对象。
    using (FileStream stream = File.Open("file.txt", FileMode.Open))
    {
        //跳转文件指针到最后一个字节
        stream.Seek(-1, SeekOrigin.End);
        //最后一个字节修改为0
        stream.WriteByte(0);
    }
      

  2.   

    http://msdn.microsoft.com/zh-cn/library/system.io.memorystream.seek.aspx
      

  3.   

    这个我理解,能不能帮我看看这个fs.Seek(16, SeekOrigin.Begin);
                              StreamWriter sw = new StreamWriter(fs);
                              sw.writeLine("Done!");
      

  4.   

    fs是真实操作文件的流对象,从头开始,往后移动16个字节。
    然后用这个fs创建一个StreamWriter。
    因为StreamWriter具有Encoding,可以调用Write(string)和WriteLine(String)。但文件方式不具有seek。所以fs先seek到位置,再用fs创建StreamWriter对象。写文本。
      

  5.   

    例如有个文件1234
    5678
    9012方法:private static void TestWriteFile()
    {
        using (FileStream fs = File.Open("data.txt", FileMode.Open))
        {
            //跳过第一行4个字节和回车换行,一共6字节。
            fs.Seek(6, SeekOrigin.Begin);
            StreamWriter writer = new StreamWriter(fs);
            writer.WriteLine("0000");
            writer.Close();
        }
    }将把第二行修改为0000
      

  6.   

     public void add()
            {
                try
                {
                    fs = new FileStream(path, FileMode.Append,FileAccess.Write,FileShare.None);
                }
                catch
                {
                    Console.WriteLine("record create error!");
                    return;
                }
                Console.WriteLine("请输入Name:");
                Console.ReadLine();
                arecord.name = Console.ReadLine();
                Console.WriteLine("请输入分数:");
                arecord.num = int.Parse(Console.ReadLine());
                fs.Seek(4, SeekOrigin.Begin);
                StreamWriter sw = new StreamWriter(fs);
                sw.WriteLine("姓名为:{0}  分数为:{1}",arecord.name,arecord.num);
                sw.Close();
                fs.Close();
            }
    报错为:无法通过向后搜索来覆盖以追加模式打开的文件中的原有数据。
      

  7.   

    打开的时候你以FileMode.Append方式打开的,所以不能seek
      

  8.   

    提示很明确了,不需要Seek
    直接sw.WriteLine
      

  9.   

    嗯,我只是想试试Seek的使用!谢谢啊