我有一个while循环,其中通过附加shell脚本的输出来构造JAVA String。
System.out.println("Here is the standard output of the command:\n");
while ((s = stdInput.readLine()) != null) {
refreshString = refreshString + s;
System.out.println(s);
}
此shell脚本需要2小时才能执行。有没有办法每隔10秒就可以获取一次字符串(当前字符串的快照)?我正在开发一个JAVA应用程序,我需要每隔10秒在浏览器上显示该字符串。(我通过使用自动页面刷新库来执行此操作。页面会自动刷新。)
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
...
PrintWriter out = response.getWriter();
...
out.println(refreshString);
现在,每次页面刷新时,我的页面都必须显示当前的“refreshString”。
如果我的问题不明确,请告诉我。
答案 0 :(得分:2)
怎么样......每隔十秒就会打印一下你的字符串,它不需要做太多改动!
long ini = System.currentTimeMillis();
while ((s = stdInput.readLine()) != null) {
refreshString = refreshString + s;
if(System.currentTimeMillis() - ini >= 10 * 1000){
ini = System.currentTimeMillis();
System.out.println(s);
}
}
编辑:抱歉,你的意思是每十秒!
希望它有所帮助!
答案 1 :(得分:1)
您可以使用文件。您的脚本将输出写入文件。然后,只要调用该文件,您的servlet就会读取该文件。
答案 2 :(得分:0)
试试这个:
Thread thread = new Thread() {
public void run() {
while (true){
try {
Thread.sleep(10000);
System.out.println(myString);
myString = "";
} catch (Exception e){}
}
}
};
thread.start();
for (int i=0; ; i++){
myString += i;
// Do other stuff
}