OpenLiveWriter/utilities/BlogServer/WebServer/StreamHelper.cs

42 lines
1023 B
C#

using System;
using System.IO;
using System.Net.Sockets;
using System.Text;
namespace BlogServer.WebServer
{
public class StreamHelper
{
public static void Write(Stream stream, string format, params object[] parameters)
{
string s = format;
if (parameters != null && parameters.Length > 0)
s = string.Format(format, parameters);
const int BLOCK_SIZE = 4096;
byte[] buf = new byte[Math.Min(BLOCK_SIZE, s.Length)];
for (int i = 0; i < s.Length; i += BLOCK_SIZE)
{
int bytec = Encoding.ASCII.GetBytes(s, i, Math.Min(BLOCK_SIZE, s.Length - i), buf, 0);
stream.Write(buf, 0, bytec);
}
}
public static void WriteLine(Stream stream, string s, params object[] parameters)
{
Write(stream, s + "\r\n", parameters);
}
public static void Transfer(Stream inStream, Stream outStream)
{
const int BLOCK_SIZE = 8192;
byte[] buf = new byte[BLOCK_SIZE];
int cnt;
while (0 != (cnt = inStream.Read(buf, 0, BLOCK_SIZE)))
{
outStream.Write(buf, 0, cnt);
}
}
}
}