How do I append a portion of byte array to a StringBuilder
object under Java? I have a segment of a function that reads from an InputStream into a byte array. I then want to append whatever I read into a StringBuilder object:
byte[] buffer = new byte[4096];
InputStream is;
//
//some setup code
//
while (is.available() > 0)
{
int len = is.read(buffer);
//I want to append buffer[0] to buffer[len] into StringBuilder at this point
}
You should not use a
StringBuilder
for this, since this can cause encoding errors for variable-width encodings. You can use ajava.io.ByteArrayOutputStream
instead, and convert it to a string when all data has been read:If the encoding is known not to contain multi-byte sequences (you are working with ASCII data, for instance), then using a
StringBuilder
will work.