2011-09-28 44 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;