C# Get Integer Byte Array in String

I have a random integer value which I need to represent in String as a Byte array. For example:

int value = 32;
String strValue = getStringByteArray(value);
Console.WriteLine(strValue); // should write: " \0\0\0"

If value = 11 then getStringByteArray(value) shuld return "\v\0\0\0".

If value = 13 then getStringByteArray(value) shuld return "\r\0\0\0".

And so on.

Any idea on how to implement the method getStringByteArray(int value) in C#?

UPDATE

This is the code that receives the data from the C# NamedPipe Server:

bool CFilePipe::ReadString(int m_handle, string &value)
{
   //--- check for data
   if(WaitForRead(sizeof(int)))
     {
      ResetLastError();
      int size=FileReadInteger(m_handle);
      if(GetLastError()==0)
        {
         //--- check for data
         if(WaitForRead(size))
           {
            value=FileReadString(m_handle,size);
            return(size==StringLen(value));
           }
        }
     }
   //--- failure
   return(false);
}
Jon Skeet
people
quotationmark

Don't take this approach at all. You should be writing to a binary stream of some description - and write the binary data for the length of the packet/message, followed by the message itself. For example:

BinaryWriter writer = new BinaryWriter(stream);
byte[] data = Encoding.UTF8.GetBytes(text);
writer.Write(data.Length);
writer.Write(data);

Then at the other end, you'd use:

BinaryReader reader = new BinaryReader(stream);
int length = reader.ReadInt32();
byte[] data = reader.ReadBytes(length);
string text = Encoding.UTF8.GetString(data);

No need to treat binary data as text at all.

people

See more on this question at Stackoverflow