Jak dołączyć część tablicy bajtów do obiektu StringBuilder w Javie? Mam segment funkcji odczytywanej ze strumienia InputStream do tablicy bajtów. Następnie chcę dołączyć co czytam w obiekt StringBuilder:dołączyć część tablicy bajtów java do StringBuilder
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
}
Jakie kodowanie wykorzystuje twój tekst? Powyższa metoda będzie działała z ASCII, ale może zawieść w przypadku dowolnych wielobajtowych łańcuchów, takich jak UTF-8 lub UTF-16 (możesz odczytać częściowy ciąg z bufora i uzyskać na końcu tylko połowę definicji znaku, a także pozostawić nieprawidłowy początek dla następnej części) – tomash
'String s = nowy ciąg (bufor, 0, len," UTF-8 ");' dla innych kodowań niż ASCII –
Czy sprawdziłeś przypadkiem, czy działa on szybciej niż 'ByteArrayOutputStream'? Przypuszczam, że tak będzie. – Kashyap