這是我當前的代碼:如何安全地將`ToBase64String`分塊轉換?
public void WriteXml(System.Xml.XmlWriter writer)
{
CloseConnection();
using (Stream source = File.Open(DataBaseFileName, FileMode.Open))
{
byte[] buffer = new byte[source.Length];
source.Read(buffer, 0, (int)source.Length);
writer.WriteString(Convert.ToBase64String(buffer));
}
OpenConnection();
}
這樣做是嵌入數據庫到XML文件(該方法屬於類中的字段在另一個類,是一個被序列化)。問題是,無論何時數據庫大約300MB,我都會在byte[] buffer = new byte[source.Length];
行上發現OutOfMemory異常。所以我想我需要在大塊上做。但我不確定那會怎樣。我認爲這些塊需要具有特定的尺寸。另外,我認爲Convert.ToBase64String
會在字符串的末尾添加兩個「==」符號,所以我可能必須每次擦除它們直到最後一個。
爲什麼你將300 MB文件轉換爲XML文件? – 2010-11-16 18:20:20
因爲我想。 – Juan 2010-11-16 18:46:51
而且因爲我想將它嵌入到保存很多其他東西的「Project」文件中。我應該使用二進制序列化,但還有其他一些事情我必須先解決。 – Juan 2010-11-16 18:50:33