【问题标题】:Read file from position从位置读取文件
【发布时间】:2011-09-29 10:56:38
【问题描述】:
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'以字符串结尾?

【问题讨论】:

    标签: c# file-io


    【解决方案1】:

    这就是你所追求的吗?假设您想从位置 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);
            }
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 但是Read函数返回int。
      • 我不需要字节数。我需要得到一个字符串变量,它将包含文件从位置到结尾的值。
      • 好的,所以继续读文件直到你读到最后,把你读到的数据放到一个字符串中。
      【解决方案3】:

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

      所以要从位置到结尾读取文件,请执行Seek(),然后执行Read()ReadToEnd()

      【讨论】:

      • 但它们都返回数字。
      猜你喜欢
      • 1970-01-01
      • 2015-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多