- optimized content encoding
git-svn-id: https://svn.apache.org/repos/asf/chemistry/dotcmis/trunk@1082509 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/DotCMIS/binding/atompub/atompub-writer.cs b/DotCMIS/binding/atompub/atompub-writer.cs
index d881301..dfc449b 100644
--- a/DotCMIS/binding/atompub/atompub-writer.cs
+++ b/DotCMIS/binding/atompub/atompub-writer.cs
@@ -169,25 +169,17 @@
private void WriteContent(XmlWriter writer)
{
- byte[] byteArray = null;
-
- if (stream is MemoryStream)
+ using (BinaryReader br = new BinaryReader(stream))
{
- byteArray = ((MemoryStream)stream).ToArray();
- }
- else
- {
- MemoryStream memStream = new MemoryStream();
byte[] buffer = new byte[BufferSize];
- int bytes;
- while ((bytes = stream.Read(buffer, 0, buffer.Length)) > 0)
- {
- memStream.Write(buffer, 0, bytes);
- }
- byteArray = memStream.ToArray();
- }
+ int readBytes = 0;
- writer.WriteBase64(byteArray, 0, byteArray.Length);
+ do
+ {
+ readBytes = br.Read(buffer, 0, BufferSize);
+ writer.WriteBase64(buffer, 0, readBytes);
+ } while (BufferSize <= readBytes);
+ }
}
}