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