Char to string gives wrong value ?

I have this :

      Serial.write(charBuf[0]);  //gives 5
             String data(charBuf);
             Serial.write(data);   //gives nothing (space)

first is prints 5 , second prints nothing . What am i missing? is it has to do with NULL terminated stuff ?

This is how the buffer is being created :

 int len=1;
               char charBuf[len];
             for(int k=ACT_THRESH;k<ACT_THRESH+len;k++)
             {
                charBuf[k-ACT_THRESH]= EEPROM.read(k);


             }

What am i missing?

A bunch of code.

Post ALL of your code.

There is NO reason to be using Strings. A NULL terminated array of chars is a far better option.

BTW, I find it easier to read when it looks like this:

    char charBuf[len] = {0};
    for(int k=0; k<len; k++)
    {
       charBuf[k] = EEPROM.read(k+ACT_THRESH);
    }
   int len=1;
   char charBuf[len];

should really be

   int len=1;
   char charBuf[len+1] = {0};

to accommodate the 0 at the end of the string.

Of course, a one character string is rather pointless.