123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /*
- * Copyright (C) Alibaba Cloud Computing
- * All rights reserved.
- *
- * 版权所有 (C)阿里云计算有限公司
- */
- using System.IO;
- namespace Aliyun.OSS.Util
- {
- internal static class IoUtils
- {
- private const int BufferSize = 4 * 1024;
-
- public static void WriteTo(Stream src, Stream dest)
- {
- var buffer = new byte[BufferSize];
- int bytesRead;
- while((bytesRead = src.Read(buffer, 0, buffer.Length)) > 0)
- {
- dest.Write(buffer, 0, bytesRead);
- }
- dest.Flush();
- }
-
- public static long WriteTo(Stream orignStream, Stream destStream, long totalSize)
- {
- var buffer = new byte[BufferSize];
-
- long alreadyRead = 0;
- while (alreadyRead < totalSize)
- {
- var readSize = orignStream.Read(buffer, 0, BufferSize);
- if (readSize <= 0)
- break;
-
- if (alreadyRead + readSize > totalSize)
- readSize = (int) (totalSize - alreadyRead);
- alreadyRead += readSize;
- destStream.Write(buffer, 0, readSize);
- }
- destStream.Flush();
- return alreadyRead;
- }
- }
- }
|