Problem:试图通过Java从电子天平中读取
我正在尝试使用Java从com端口读取数据。到目前为止,我已经成功地创建了一个小型应用程序,该应用程序使用Java SerialPort和InputStream类从comport读取。
应用程序使用SerialPortEventListener来侦听通过缩尺向计算机发送的事件。到目前为止,通过使用事件侦听器中的InputStream从comport读取一些字节,我已经取得了一些成功,但是输出没有任何意义,我一直以以下形式获得消息:
[B@8813f2或
[B@1d58aae为了澄清,当我与比例的键盘交互时,我在屏幕上接收这些信息。我只是需要一些帮助,以正确解释输出。我是否使用正确的类来读和写?
发布于 2011-04-09 03:27:05
您已经将数据读取到byte[]中,然后尝试使用System.out.println(data) ( data被声明为byte[] data )转储数据。不幸的是,这只会打印数组的内部表示,这是无用的,'[‘后面跟着十六进制哈希代码。
相反,您希望转储数组的内容。使用
System.out.println(Arrays.toString(data))对你来说是最简单的方法。
否则,您需要迭代数组,并打印每个字节,或者使用new String(data) (将使用平台默认编码)将字节数组转换为new String(data)。
发布于 2011-04-09 00:28:22
这些结果类似于打印字节数组对象作为原始对象引用的结果。因此,您的调用很可能是对System.out.something或System.err.something的某种混淆调用。
发布于 2011-04-09 00:32:04
您拥有的对象显然是一个字节数组。我猜你拿着这个东西,然后把它打印到控制台。见:http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html#getName()和:http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html#toString()
https://stackoverflow.com/questions/5602046
复制相似问题