从COM端口

时间:2016-06-25 22:20:27

标签: java serial-port inputstream rxtx

我正在使用rxtx连接到串口。一切正常,但有一个问题,我无法解决。

连接并阅读后,用户可能会拔下设备(是......用户......)。如果发生这种情况,我会收到以下错误:

enter image description here

我没有得到异常,它只是杀死了java se(java.exe)。如果我得到一个例外,我会采取相应的行动,但在这种情况下,我的应用程序停止工作并关闭。

我使用InputStream从de serial端口读取。 InputStream input = serialPort.getInputStream();

我认为问题是流是开放的,并且在设备关闭时无法检测到。当我读到这一行时会发生这种情况:
byte singleData =(byte)input.read();

我找不到任何方法可以帮助我在阅读之前测试状态。 即使我没有阅读(或使用InputStream),几秒钟后出现错误(我认为有人试图关闭de输入或其他东西)。

如何获取此事件(设备已拔下插头)?我该如何关闭端口和输入流?

提前致谢。

1 个答案:

答案 0 :(得分:-2)

我更喜欢jssc库而不是rxtx。您可以使用try ... catch块来避免粉碎。