我們正在嘗試從文本文件中讀取每個單詞並將其替換爲另一個單詞。 對於較小的文本文件,效果很好。但是,對於較大的文本文件,我們不斷收到異常:「字符串不能是零長度 參數名:屬性oldValue」異常「字符串不能爲零長度」
void replace()
{
string s1 = " ", s2 = " ";
StreamReader streamReader;
streamReader = File.OpenText("C:\\sample.txt");
StreamWriter streamWriter = File.CreateText("C:\\sample1.txt");
//int x = st.Rows.Count;
while ((line = streamReader.ReadLine()) != null)
{
char[] delimiterChars = { ' ', '\t' };
String[] words = line.Split(delimiterChars);
foreach (string str in words)
{
s1 = str;
DataRow drow = st.Rows.Find(str);
if (drow != null)
{
index = st.Rows.IndexOf(drow);
s2 = Convert.ToString(st.Rows[index]["Binary"]);
s2 += "000";
// Console.WriteLine(s1);
// Console.WriteLine(s2);
streamWriter.Write(s1.Replace(s1,s2)); // Exception occurs here
}
else
break;
}
}
streamReader.Close();
streamWriter.Close();
}
我們無法找到原因。 在此先感謝。
您可以通過空間拆分時,會得到一個空字符串。檢查是否沒有任何有兩個連續空格字符的地方。 – Tudor 2012-02-04 14:02:17
將來,請包含異常的堆棧跟蹤,並且如果可能,請指出引發異常的行。這通常可以快速識別問題的根源,而不是讓人們分析程序來搞清楚。 – 2012-02-04 14:27:28