以下のコードを使用して、接続されたソケットからデータを読み取ります。System.arraycopy(tempBuffer、0、buffer、0、byteRead)コードを実行した後、バッファー変数で受信するデータの長さは41バイトです。送信システムは43バイトを送信しています。arraycopyが他のバイトを切り刻んでいる理由を知っている人はいますか?
public class BluetoothClientSocket{
private class ConnectedThread extends Thread {
private final BluetoothSocket mmSocket;
private final InputStream mmInStream;
private final OutputStream mmOutStream;
public ConnectedThread(BluetoothSocket socket) {
mmSocket = socket;
InputStream tmpIn = null;
OutputStream tmpOut = null;
// Get the BluetoothSocket input and output streams
try {
tmpIn = socket.getInputStream();
tmpOut = socket.getOutputStream();
} catch (IOException e) {
//handle exception logic
}
mmInStream = tmpIn;
mmOutStream = tmpOut;
}
public void run(){
byte[] tempBuffer = new byte[1024];
byte[] buffer = null;
int byteRead;
while (true) {
try {
InputStream itStrm = mmInStream;
byteRead = mmInStream.read(tempBuffer);
if(byteRead > 0){
buffer = new byte[byteRead];
System.arraycopy(tempBuffer, 0, buffer, 0, byteRead);
}
}
catch(Exception ex){
//handle exception logic
}
}
}
}
}