2011-09-29 136 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

我不需要字節數。我需要得到一個字符串變量,它將包含文件從位置到結尾的值。 –