using System;
using System.IO;
using System.Text;
public class Test
{
public static void Main()
{
BinaryWriter bw = new BinaryWriter(new MemoryStream());
{
string str = "Hello, World!";
byte[] strBytes = Encoding.UTF8.GetBytes(str);
byte[] lenBytes = BitConverter.GetBytes(strBytes.Length);
Array.Reverse(lenBytes);
bw.Write(lenBytes);
bw.Write(strBytes);
bw.Flush();
}
BinaryReader br = new BinaryReader(bw.BaseStream);
br.BaseStream.Position = 0;
{
byte[] lenBytes = br.ReadBytes(4);
Array.Reverse(lenBytes);
int len = BitConverter.ToInt32(lenBytes, 0);
byte[] strBytes = br.ReadBytes(len);
string str = Encoding.UTF8.GetString(strBytes);
Console.WriteLine(str);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uSU87CnVzaW5nIFN5c3RlbS5UZXh0OwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCUJpbmFyeVdyaXRlciBidyA9IG5ldyBCaW5hcnlXcml0ZXIobmV3IE1lbW9yeVN0cmVhbSgpKTsKCiAgICAgICAgewogICAgICAgICAgICBzdHJpbmcgc3RyID0gIkhlbGxvLCBXb3JsZCEiOwogICAgICAgICAgICBieXRlW10gc3RyQnl0ZXMgPSBFbmNvZGluZy5VVEY4LkdldEJ5dGVzKHN0cik7CiAgICAgICAgICAgIGJ5dGVbXSBsZW5CeXRlcyA9IEJpdENvbnZlcnRlci5HZXRCeXRlcyhzdHJCeXRlcy5MZW5ndGgpOwogICAgICAgICAgICBBcnJheS5SZXZlcnNlKGxlbkJ5dGVzKTsKICAgICAgICAgICAgYncuV3JpdGUobGVuQnl0ZXMpOwogICAgICAgICAgICBidy5Xcml0ZShzdHJCeXRlcyk7CiAgICAgICAgICAgIGJ3LkZsdXNoKCk7CiAgICAgICAgfQoKICAgICAgICBCaW5hcnlSZWFkZXIgYnIgPSBuZXcgQmluYXJ5UmVhZGVyKGJ3LkJhc2VTdHJlYW0pOwoKICAgICAgICBici5CYXNlU3RyZWFtLlBvc2l0aW9uID0gMDsKCiAgICAgICAgewogICAgICAgICAgICBieXRlW10gbGVuQnl0ZXMgPSBici5SZWFkQnl0ZXMoNCk7CiAgICAgICAgICAgIEFycmF5LlJldmVyc2UobGVuQnl0ZXMpOwogICAgICAgICAgICBpbnQgbGVuID0gQml0Q29udmVydGVyLlRvSW50MzIobGVuQnl0ZXMsIDApOwogICAgICAgICAgICBieXRlW10gc3RyQnl0ZXMgPSBici5SZWFkQnl0ZXMobGVuKTsKICAgICAgICAgICAgc3RyaW5nIHN0ciA9IEVuY29kaW5nLlVURjguR2V0U3RyaW5nKHN0ckJ5dGVzKTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoc3RyKTsKICAgICAgICB9Cgl9Cn0=