2

InputStream inputFromPort;

    try {
        inputFromPort = serial.getInputStream();  //SerialPort

        b=new byte[20];

        inputFromPort.read(b);

        reading=new String(b,"UTF-8");

        System.out.println(reading.length());

        System.out.println("new message: " + reading);

        inputFromPort.close();

        serial.close();         
    } 

結果:新しいメッセージ:Hello、world!->これはOKです6つのボックスの記号->(ここではコピーできません)bの長さが「Hello、world!」よりも大きいため、表示されることはわかっています。そのサイズでバイト配列bを初期化できるようにメッセージ

4

1 に答える 1

2

の戻り値を確認してくださいinputFromPort.read(b);

 int readLength = inputFromPort.read(b);

read()次に、受信したバイトのみを使用して文字列を作成する必要があります。これは、 :の呼び出しによって実際に書き込まれたバイト配列の一部です。

String reading = new String(b, 0, readLength, "UTF-8");

このようにすると、「Hello、World!」の後に「ボックスシンボル」が表示されなくなります。

于 2013-02-16T19:51:20.327 に答える