That's not going to happen if "c" remains formatted like that. The "[B@19821f" means an array ("[") of bytes ("B") with hexidecimal hash code 19821f. For arrays it's 100% impossible to get the contents when all you have is a hash code. The hash code doesn't represent the array elements, just the array itself. And that array may no longer exist.
You need to turn the byte into a String in a better way. The easy way is to use "new String(b)" but that's too easy. You probably want something like transforming the byte into a hexadecimal String based on its elements. If you use our search you should be able to find some threads about that. I can clearly remember a small discussion we had in this thread.
That's converting from byte to String. You then need to be able to convert the String back into a byte. That's actually very easy. Split the String into pieces of 2 characters each. Then use Short.parseShort(x, 16) to turn these into shorts. Cast these into bytes. You will need the shorts because the hexadecimal representation of -1 is FF which would result in 255, and that's not within the range of byte. By casting the short 255 into a byte you get a byte with value -1 again.