1

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

4

2 回答 2

0

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

于 2010-07-27T16:53:55.343 回答
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);
于 2010-07-27T16:55:05.933 回答