我需要在一個循環中追加很多字符串,這會創建一個很長的字符串。
1GB應足夠長,存儲字符串,所以我這樣做:sb = new StringBuilder(1024 * 1024 * 1024)>'System.OutOfMemoryException'被拋出
var sb = new StringBuilder(1024 * 1024 * 1024);
但收到此錯誤
'System.OutOfMemoryException' was thrown
任何建議追加長字符串?
我正在爲MySQL數據庫寫一個備份工具。這些工具將從數據庫導出數據並寫入文本文件。數據包含BLOB和TEXT數據類型。所以,會期待很長的字符串。
這是代碼:代碼更新1
var conn = new MySqlConnection(Program.ConnectionString);
var cmd = new MySqlCommand();
cmd.Connection = conn;
conn.Open();
cmd.CommandText = selectSQL;
MySqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
var sb = new StringBuilder(1024 * 1024 * 1024);
for (int i = 0; i < rdr.FieldCount; i++)
{
if (sb.Length > 0)
sb.AppendFormat(separator);
if (rdr[i].GetType() == typeof(byte[]))
{
sb.AppendFormat(ConvertByteArrayToHexString((byte[])rdr[i]));
}
else
sb.AppendFormat(rdr[i] + "");
}
WriteToFile(sb.ToString());
}
conn.Close();
看來,你的JVM是不是配置爲可以訪問2千兆字節的內存(1G字符== 2GB)。 – dasblinkenlight
JVM?這是一個C#問題。 – Nuzzolilo