有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java通过I/O流接收一定数量的字节

我正在创建一个Android应用程序,通过蓝牙将我的设备连接到一个嵌入式芯片。我在Palm Pilot(用C编写)上已经存在的一个程序之后对我的设计进行建模。我正在使用蓝牙聊天示例来运行我的代码,结果卡住了。我对整个编码世界还是相当陌生的,我有点困惑自己

我想把下面的代码从C转换成Java

SrmReceive(portId,&c,1,(t*5L*Sec)/1000L,&err)

这里唯一真正的问题是第三个参数。1表示number of bytes to receive,如palm文档中所述,类型为UInt32

蓝牙聊天示例中的代码具有以下读取数据的功能

            public void run() {
                Log.i( TAG, "BEGIN mConnectedThread" );
                buffer = new byte[1024];
                int bytes;

                // Keep listening to the InputStream while connected
                while( true ) {
                try {
                    // Read from the InputStream
                    bytes = mmInStream.read( buffer );

                    // Send the obtained bytes to the UI Activity
                    mHandler.obtainMessage( BtHelperHandler.MessageType.READ, bytes, buffer).sendToTarget();
                } catch ( IOException e ) {
                    Log.e( TAG, "disconnected", e );
                    sendErrorMessage( 1 );
                    break;
                }
            }
        }

我想更改run()方法,使其具有用于读取特定字节数的参数。我有点困惑该怎么办。我在想

public void run( int size ) {
    buffer = new byte[size];
    ...
}

但我觉得这不对,我觉得我把字节的定义搞混了。听起来可能很愚蠢,但我对这些信息还不够自信。将UInt32转换为java让我感到困惑,因为java没有等效的类型。如果有人知道,请告诉我


共 (0) 个答案