public void Write_Read_ValueStream() { using (var ms = new ValueStream()) using (var ms2 = new ValueStream()) { var s = @"동해물과 백두산이"; var b = s.ToBytes(); ms.Write(s); ms.Write(true); ms.Write(1234); ms.Write('x'); ms.Write(1245.567F); ms.Write(999.99); ms.Write(4444L); ms.Write((short)127); ms.Write(s.ToBytes()); ms.Position = 0; Assert.AreEqual(ms.ReadString(), s); Assert.AreEqual(ms.ReadBoolean(), true); Assert.AreEqual(ms.ReadInt32(), 1234); Assert.AreEqual(ms.ReadChar(), 'x'); Assert.AreEqual(ms.ReadFloat(), 1245.567F); Assert.AreEqual(ms.ReadDouble(), 999.99); Assert.AreEqual(ms.ReadInt64(), 4444L); Assert.AreEqual(ms.ReadInt16(), 127); Assert.AreEqual(ms.ReadBytes(b.Length).ToText(), s); ms.Position = 0; // ms 의 내용을 m2에 쓴다. ms2.Write(ms); ms2.Position = 0; // m2 stream을 모두 복사해서 새로운 객체를 만든다. var ms3 = (MemoryStream)ms2.ReadStream(); ms3.Position = 0; Assert.AreEqual(StreamTool.ReadString(ms3), s); Assert.AreEqual(StreamTool.ReadBoolean(ms3), true); Assert.AreEqual(StreamTool.ReadInt32(ms3), 1234); Assert.AreEqual(StreamTool.ReadChar(ms3), 'x'); Assert.AreEqual(StreamTool.ReadFloat(ms3), 1245.567F); Assert.AreEqual(StreamTool.ReadDouble(ms3), 999.99); Assert.AreEqual(StreamTool.ReadInt64(ms3), 4444L); Assert.AreEqual(StreamTool.ReadInt16(ms3), 127); Assert.AreEqual(StreamTool.ReadBytes(ms3, b.Length).ToText(), s); } }
/// <summary> /// 인스턴스에 <paramref name="v"/> 값 쓰기 /// </summary> /// <param name="v">쓸 값</param> public void Write(float v) { StreamTool.Write(this, v); }
/// <summary> /// 인스턴스에 <paramref name="v"/> 값 쓰기 /// </summary> /// <param name="v">쓸 값</param> public void Write(long v) { StreamTool.Write(this, v); }
/// <summary> /// 인스턴스에 <paramref name="s"/> 값 쓰기 /// </summary> /// <param name="s">쓸 값</param> public void Write(string s) { StreamTool.Write(this, s); }
/// <summary> /// 스트림에서 현위치부터 <paramref name="length"/> 길이 만큼 읽어서 일차원 바이트 배열로 반환한다. /// </summary> /// <param name="length">읽을 길이</param> /// <returns>일차원 바이트 배열</returns> public byte[] ReadBytes(int length) { return(StreamTool.ReadBytes(this, length)); }
/// <summary> /// 인스턴스에서 <see cref="char"/> 형식의 값 읽기 /// </summary> /// <returns>읽은 값</returns> public char ReadChar() { return(StreamTool.ReadChar(this)); }
/// <summary> /// 인스턴스에서 <see cref="float"/> 형식의 값 읽기 /// </summary> /// <returns>읽은 값</returns> public float ReadFloat() { return(StreamTool.ReadFloat(this)); }
public UInt32 ReadUInt32() { return(StreamTool.ReadUInt32(this)); }
public void Read(out ushort v) { StreamTool.Read(this, out v); }
/// <summary> /// 인스턴스에서 값 읽기 /// </summary> /// <param name="s">읽은 값</param> public void Read(out string s) { StreamTool.Read(this, out s); }
/// <summary> /// 인스턴스에 <paramref name="stream"/> 값 쓰기 /// </summary> /// <param name="stream">쓸 값</param> public void Write(Stream stream) { StreamTool.Write(this, stream); }
/// <summary> /// 인스턴스에 <paramref name="v"/> 값 쓰기 /// </summary> /// <param name="v">쓸 값</param> public void Write(byte[] v) { StreamTool.Write(this, v); }
/// <summary> /// 인스턴스에 <paramref name="v"/> 값 쓰기 /// </summary> /// <param name="v">쓸 값</param> public void Write(char v) { StreamTool.Write(this, v); }
/// <summary> /// 인스턴스에 <paramref name="v"/> 값 쓰기 /// </summary> /// <param name="v">쓸 값</param> public void Write(bool v) { StreamTool.Write(this, v); }
/// <summary> /// 인스턴스에 <paramref name="v"/> 값 쓰기 /// </summary> /// <param name="v">쓸 값</param> public void Write(double v) { StreamTool.Write(this, v); }
/// <summary> /// 인스턴스에서 문자열 읽기 /// </summary> /// <returns>읽은 문자열</returns> public string ReadString() { return(StreamTool.ReadString(this)); }
public UInt16 ReadUInt16() { return(StreamTool.ReadUInt16(this)); }
public void Read(out ulong v) { StreamTool.Read(this, out v); }
public UInt64 ReadUInt64() { return(StreamTool.ReadUInt64(this)); }
/// <summary> /// 인스턴스에서 값 읽기 /// </summary> /// <param name="v">읽은 값</param> public void Read(out float v) { StreamTool.Read(this, out v); }
/// <summary> /// 인스턴스에서 <see cref="double"/> 형식의 값 읽기 /// </summary> /// <returns>읽은 값</returns> public double ReadDouble() { return(StreamTool.ReadDouble(this)); }
/// <summary> /// 인스턴스에서 값 읽기 /// </summary> /// <param name="v">읽은 값</param> public void Read(out double v) { StreamTool.Read(this, out v); }
/// <summary> /// 인스턴스에서 <see cref="System.Boolean"/> 형식의 값 읽기 /// </summary> /// <returns>읽은 값</returns> public bool ReadBoolean() { return(StreamTool.ReadBoolean(this)); }
/// <summary> /// 인스턴스에서 값 읽기 /// </summary> /// <param name="v">읽은 값</param> public void Read(out bool v) { StreamTool.Read(this, out v); }
/// <summary> /// 인스턴스의 현재 <see cref="Stream.Position"/>에서부터 끝까지 읽어서 <see cref="Stream"/>으로 반환한다. /// </summary> /// <returns>읽은 <see cref="Stream"/> 인스턴스</returns> public Stream ReadStream() { return(StreamTool.ReadStream(this)); }
/// <summary> /// 인스턴스에서 값 읽기 /// </summary> /// <param name="v">읽은 값</param> public void Read(out char v) { StreamTool.Read(this, out v); }
/// <summary> /// 인스턴스에 <paramref name="v"/> 값 쓰기 /// </summary> /// <param name="v">쓸 값</param> public void Write(int v) { StreamTool.Write(this, v); }
/// <summary> /// 인스턴스에서 값 읽기 /// </summary> /// <param name="v">읽은 값</param> public void Read(byte[] v) { StreamTool.Read(this, v); }
public void Write(ushort v) { StreamTool.Write(this, v); }
/// <summary> /// 인스턴스에서 값 읽기 /// </summary> /// <param name="stream">읽은 값</param> public void Read(out Stream stream) { StreamTool.Read(this, out stream); }