Как конвертировать int ByteStream в строку? - PullRequest
1 голос
/ 27 июля 2010

Привет! Я пытаюсь реализовать интерфейс SourceStream в своем приложении и переопределяет метод read (byte [], off, len), и я читаю байты с сервера. Но я хочу преобразовать этот поток байтов в String для этогоЯ использовал строковый объект new String (byte []), но он запрашивает начальный байт в off и длину байтов, то есть len, в качестве параметров. Почему он запрашивает подобное, так как мы содержат только Strring (bye []) только,Может ли кто-нибудь помочь мне ... Спасибо

Ответы [ 2 ]

0 голосов
/ 27 июля 2010

Если у вас просто есть byte[], вы можете создать новый String с помощью конструктора String(byte[],int,int), предоставляемого API.

В вашем случае вы бы сделали

byte[] myBytes = ("Hello, World!").getBytes();
String myString = new String(myBytes, 0, myBytes.length);
System.out.println(myString);

РЕДАКТИРОВАТЬ: Попробуйте что-то вроде этого:

int readLength = (len > bufSize ? bufSize : len);
for (int i = 0; i < readLength; i++) {
    b[off + i] = buffers[PBuf][PByte];
}
String metaSt = new String(b, 0, readLength);
0 голосов
/ 27 июля 2010

Просто укажите 0 в качестве начального смещения и yourArray.Length в качестве длины, и все готово. Кто-то может догадаться, почему метод, который принимает только байтовый массив, не является догадкой - возможно, просто чтобы избежать 101 варианта метода.

...