[英]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.