2011-09-28 85 views
-3

的我所遇到的一個數組索引超出基於以下代碼越界異常的:索引超出範圍陣列例外+的StreamReader

我明白ReadToEnd的方法可能會破壞用於StreamReader的指針,因此,我實施discardbuffereddata和seekorigin 0.然而,我仍然得到一個索引超出界限。請幫助?謝謝!

StreamReader sr = new StreamReader(@".\Input\" + inServer + ".txt"); 
     readall = sr.ReadToEnd(); 
     string[] splited = Regex.Split(readall, "~~~~~~~~~~~~~~"); 
     sr.BaseStream.Seek(0, SeekOrigin.Begin); 
     sr.DiscardBufferedData(); 


    while (sr.Peek() >= 0) 
      { 
       currLine = sr.ReadLine(); 
} 
+0

該線正好拋出異常?我一眼就看不到它。 –

+0

代碼中的ReadToEnd()調用與StreamReader無關,並且永遠不會觸及該文件。樣本中的前兩行代碼基本上什麼都不做。 –

+0

圍繞sr.peek()區域 –

回答

0

嘗試修改您的代碼如下:

 readAll = sr.ReadToEnd(); 
     sr.Close(); 
     foreach (string s in readAll.Split(new char[] { '\r', 'n' })) 
     { 

      currLine = s;