using System;
using System.IO;
public class ByteArray
{
MemoryStream ms = new MemoryStream();
BinaryReader br;
BinaryWriter bw;
public ByteArray()
{
bw = new BinaryWriter(ms);
br = new BinaryReader(ms);
}
public ByteArray(byte[] buff)
{
ms = new MemoryStream(buff);
br = new BinaryReader(ms);
bw = new BinaryWriter(ms);
}
#region 读取消息
public void Read(out int vaule)
{
vaule = br.ReadInt32();
}
public void Read(out byte value)
{
value = br.ReadByte();
}
public void Read(out byte[] vaule, int length)
{
vaule = br.ReadBytes(length);
}
public void Read(out bool value)
{
value = br.ReadBoolean();
}
public void Read(out string value)
{
value = br.ReadString();
}
public void Read(out long value)
{
value = br.ReadInt64();
}
public void Read(out double value)
{
value = br.ReadDouble();
}
public void Read(out float value)
{
value = br.ReadSingle();
}
#endregion
#region 编写消息
public void Write(int value)
{
bw.Write(value);
}
public void Write(byte value)
{
bw.Write(value);
}
public void Write(bool value)
{
bw.Write(value);
}
public void Write(byte[] value)
{
bw.Write(value);
}
public void Write(string value)
{
bw.Write(value);
}
public void Write(long value)
{
bw.Write(value);
}
public void Write(double value)
{
bw.Write(value);
}
public void Write(float value)
{
bw.Write(value);
}
#endregion
public int Length
{
get
{
return (int)ms.Length;
}
}
public int Position
{
get
{
return (int)ms.Position;
}
}
///
/// 是否读取完了
///
public bool ReadOver
{
get
{
if (Position < Length)
{
return true;
}
else
{
return false;
}
}
}
///
/// 关闭读写
///
public void Close()
{
br.Close();
bw.Close();
ms.Close();
}
public byte[] GetBuffer()
{
byte[] result = new byte[ms.Length];
Buffer.BlockCopy(ms.GetBuffer(), 0, result, 0, (int)ms.Length);
return result;
}
}