簡體   English   中英

在java中實時將IO Process的值傳遞給另一個類

[英]passing values of IO Process to another class in real time in java

我有一個基本問題,我需要對其進行一些澄清。
所以如果我在Java中有一個類說IOReadWrite.java ,我在那里做一些IO讀/寫。 所以它可能有一個總是連接的循環,如:

while ((line = stream.readLine()) != null){
     //incoming data
}  

現在我有另一個類,稱之為FrontEnd.java ,我應該從IOReadWrite.java類實時顯示結果。 通常情況下,如果我調用IO類的方法,除非整個IO操作完成並且我必須等待,否則我無法獲得結果。

然而我想要的是能夠實時獲得這些結果,這樣只要輸入Stream上有東西,我就可以在我的FrontEnd類中得到它來做我想做的任何事情。

我想到的一個想法是在IOReadWrite.java中使用靜態String變量並編寫一個方法,它只返回此變量的值,我可以從主類中輪詢此函數。 但我很確定這是一個非常糟糕的方法。

您能否建議實時獲取此類信息的正確方法是什么?

你可以這樣做

FrontEnd frontEnd = 
while ((line = stream.readLine()) != null){
     //incoming data

     // notify immediately.
     frontEnd.displayLine(line);
}

displayLine的作用取決於您對該類的實現。 你能否提供一下班級對這些信息的更多細節?

它可以做的事情是

private final BlockingQueue<String> linesQueue = ...

public void displayLine(String line) {
     linesQueue.add(line);
}

// somewhere else, in another thread.
String line = linesQueue.take(); // wait for a line.

String line = linesQueue.poll(); // get the next or null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM