diff --git a/openxml4Net/OPC/Internal/MemoryPackagePart.cs b/openxml4Net/OPC/Internal/MemoryPackagePart.cs index 76cca7cc0..2af966cae 100644 --- a/openxml4Net/OPC/Internal/MemoryPackagePart.cs +++ b/openxml4Net/OPC/Internal/MemoryPackagePart.cs @@ -64,11 +64,7 @@ protected override Stream GetInputStreamImpl() { return new MemoryStream(); } - MemoryStream newMs = new MemoryStream((int)data.Length); - data.Position = 0; - StreamHelper.CopyStream(data, newMs); - newMs.Position = 0; - return newMs; + return new MemoryStream(data.GetBuffer(), 0, (int)data.Length, writable: false); } protected override Stream GetOutputStreamImpl() diff --git a/openxml4Net/OPC/StreamHelper.cs b/openxml4Net/OPC/StreamHelper.cs index e8b5fc2e9..73ae7226f 100644 --- a/openxml4Net/OPC/StreamHelper.cs +++ b/openxml4Net/OPC/StreamHelper.cs @@ -53,14 +53,7 @@ public static void SaveXmlInStream(XmlDocument xmlContent, */ public static void CopyStream(Stream inStream, Stream outStream) { - byte[] buffer = new byte[1024]; - int bytesRead = 0; - int totalRead = 0; - while ((bytesRead = inStream.Read(buffer, 0, buffer.Length)) > 0) - { - outStream.Write(buffer, 0, bytesRead); - totalRead += bytesRead; - } + inStream.CopyTo(outStream); } }