2011-09-29 107 views
0
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'文件?从位置读取文件

回答

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

是的,TNX很多:)。 –

0

Seek()只将文件指针放在别的地方。如果您在搜索之前进行读取,它将从文件的开头读取。如果您在搜索后阅读,它将从的位置开始读取。

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

+0

但他们都返回数字。 –

2

Seek方法应该返回一个数字,即流中的新位置。现在只需拨打你想要的任何Read功能即可。

+0

但Read函数返回int。 –

+0

正确,读取的字节数。为什么这是一个问题? –

+0

我不需要字节数。我需要得到一个字符串变量,它将包含文件从位置到结尾的值。 –