如何将int ByteStream转换为String?

时间:2010-07-27 16:49:29

标签: java blackberry blackberry-storm

您好我正在尝试在我的应用程序中实现接口SourceStream并覆盖方法read(byte [],off,len)并从服务器读取字节。但是我想将这些字节流转换为字符串我通过新的String(byte [])使用了一个字符串对象,但它询问了初始字节的off和字节的长度,即len作为参数。为什么它这样问,因为我们只包含Strring(bye []) 。任何人都可以帮助我...谢谢

2 个答案:

答案 0 :(得分:0)

只需提供0作为初始偏移量,并将yourArray.Length作为长度并完成。为什么没有提供仅采用字节数组的方法的任何人猜测 - 可能只是为了避免方法的101种变化。

答案 1 :(得分:0)

如果您只有一个byte[],则可以通过API提供的String构造函数创建新的String(byte[],int,int)

在你的情况下,你会做

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);