Java 从特定端口获取数据

Java 从特定端口获取数据,java,methods,serial-port,Java,Methods,Serial Port,这就是方法,我想从这个方法中获取变量数据,以便在另一个方法中使用 public synchronized void serialEvent(SerialPortEvent oEvent) { if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) { try { int available = input.available(); byte chunk

这就是方法,我想从这个方法中获取变量数据,以便在另一个方法中使用

    public synchronized void serialEvent(SerialPortEvent oEvent) {
    if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
        try {
            int available = input.available();
            byte chunk[] = new byte[available];
            input.read(chunk, 0, available);

            // Displayed results are codepage dependent

            data =new String(chunk);

        } catch (Exception e) {
            System.err.println(e.toString());
        }
    }
}

这取决于您试图实现什么,最简单的方法是直接从
serialEvent
调用另一个方法(比如它的名称
processData
),并将您从
COM
端口收到的数据传递给它,例如
processData(新字符串(块))

这种方法的问题是,如果您的方法
processData
执行一些繁重的操作,它将阻止
serialEvent

另一种方法是使用一个单独的
线程
来处理该数据,您可以将其与
并发.BlockingQueue
的实现进行通信。因此,在
serialEvent
中,您只需将数据推送到队列并继续,而无需等待
processData
完成


只需使用BlockingQueue搜索生产者/消费者模式,您将找到大量代码示例。

请正确表述您的问题。您面临的问题是什么?这是由其他线程/方法读取数据的问题吗?此方法读取我想在另一个类中用于进行身份验证等的数据。