我正在使用rxtx连接到串口。一切正常,但有一个问题,我无法解决。
连接并阅读后,用户可能会拔下设备(是......用户......)。如果发生这种情况,我会收到以下错误:
我没有得到异常,它只是杀死了java se(java.exe)。如果我得到一个例外,我会采取相应的行动,但在这种情况下,我的应用程序停止工作并关闭。
我使用InputStream从de serial端口读取。 InputStream input = serialPort.getInputStream();
我认为问题是流是开放的,并且在设备关闭时无法检测到。当我读到这一行时会发生这种情况:
byte singleData =(byte)input.read();
我找不到任何方法可以帮助我在阅读之前测试状态。 即使我没有阅读(或使用InputStream),几秒钟后出现错误(我认为有人试图关闭de输入或其他东西)。
如何获取此事件(设备已拔下插头)?我该如何关闭端口和输入流?
提前致谢。
答案 0 :(得分:-2)
我更喜欢jssc库而不是rxtx。您可以使用try ... catch块来避免粉碎。