我必须在我的 Android 应用程序中填写一个字节 []。有时,这个大于 4KB。我像这样初始化我的 byte[] :
int size = ReadTools.getPacketSize(ptr.dataInputStream);
byte[] myByteArray = new byte[size];
在这里,我的大小 = 22625。但是当我像这样填写我的字节 [] 时:
while (i != size) {
myByteArray[i] = ptr.dataInputStream.readByte();
i++;
}
但是当我打印我的 byte[] 的内容时,我有一个 size = 4060 的 byte[]。如果这个大于 4060,Java 会拆分我的 byte[] 吗?如果是的话,我怎样才能让 byte[] 优于 4060 ?
这是我的完整代码:
public class ReadSocket extends Thread{
DataInputStream inputStream;
BufferedReader reader;
GlobalContent ptr;
public ReadSocket(DataInputStream inputStream, GlobalContent ptr)
{
this.inputStream = inputStream;
this.ptr = ptr;
}
public void run() {
int i = 0;
int j = 0;
try {
ptr.StatusThreadReadSocket = 1;
while(ptr.dataInputStream.available() == 0)
{
if(ptr.StatusThreadReadSocket == 0)
{
ptr.dataInputStream.close();
break;
}
}
if(ptr.StatusThreadReadSocket == 1)
{
int end = ReadTools.getPacketSize(ptr.dataInputStream);
byte[] buffer = new byte[end];
while (i != end) {
buffer[j] = ptr.dataInputStream.readByte();
i++;
j++;
}
ptr.StatusThreadReadSocket = 0;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
...
}