Java Com端口读写问题

Java Com端口读写问题,java,serial-port,rxtx,Java,Serial Port,Rxtx,在我的应用程序中,我试图写入COM端口。连接的设备是一个arduino,它返回我发送的消息(用于测试目的)。然而,当我写它时,我没有得到我期望的响应,但是当我在GUI中使用按钮时,我得到了 写入方法: public void write(String x) { try { outStream.write(x.getBytes()); outStream.flush(); } catch (IOException e) { logge

在我的应用程序中,我试图写入COM端口。连接的设备是一个arduino,它返回我发送的消息(用于测试目的)。然而,当我写它时,我没有得到我期望的响应,但是当我在GUI中使用按钮时,我得到了

写入方法:

public void write(String x) {
    try {
        outStream.write(x.getBytes());
        outStream.flush();
    } catch (IOException e) {
        logger.error(e.getMessage(), e);
    }
}
事件侦听器

public void serialEvent(SerialPortEvent event) {
    logger.debug("listener called");
    if (event.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
        BufferedReader portReader = new BufferedReader(new InputStreamReader(inStream));
        try {
            String line = portReader.readLine();
            test(line);
        } catch (IOException e) {
            logger.error(e.getMessage(), e);
        }
    }
}
serialport将通知数据是否可用,并在我写入数据后调用侦听器,但是当我期望已发送的字符串时,我会得到一个输出\u缓冲\u空响应

SerialPortHandler基于实例,因此我可以在应用程序中的任何地方使用相同的实例

例如:

SerialPortHandler handler = SerialPortHandler.getInstance();
handler.write("hello world");
预期:

DEBUG [SerialPortHandler.java] - listener called
hello world
实际:

DEBUG [SerialPortHandler.java] - listener called

问题是我在写操作和初始化serialportHandler之间没有任何延迟