Java でピザのステータス表示を実装しようとしています。したがって、Java ファイルは html ファイルの値を読み取り、それを出力します。ステータスは、php スクリプトで変更できます: http://easternmotormall.com/teamdroidco/server/statusUpdater.php
したがって、スクリプトはステータスをファイルに書き込みます: http://easternmotormall.com/teamdroidco/server/home.html
そしてJavaファイルはそれを印刷します。しかし、私の主な問題は、結果を一度だけ表示する必要があることであり、これをどのように実装できるかわかりません。
Java コードは次のとおりです。
url = new URL("http://easternmotormall.com/teamdroidco/server/home.html");
try {
System.out.println("Fetching status from the server, please wait..");
String temp = null;
while(true){
URLConnection con = url.openConnection();
BufferedReader dataPtr = new BufferedReader(new InputStreamReader(con.getInputStream()));
// Printing status from Status Updater
String status = dataPtr.readLine();
if (status != null) {
System.out.println(status);
}
dataPtr.close();
Scanner in2 = new Scanner(System.in);
in2.nextLine();
}
}
catch (IOException e) {
System.err.println();
}
}
catch (MalformedURLException e)
{
System.err.println();
}
ループが継続しないように、最後にループを一時停止しました。
ファイルに新しいステータスが与えられたときにのみ印刷されるようにするにはどうすればよいですか?
PS。これが役立つ場合、最終的には Android アプリに変換されます。
編集:::::::::::::::::::::::::::::::::::::::::::: ここで編集スレッドのあるバージョン:
url = new URL("http://easternmotormall.com/teamdroidco/server/home.html");
try {
System.out.println("Fetching status from the server, please wait..");
String temp = null;
while(true){
URLConnection con = url.openConnection();
BufferedReader dataPtr = new BufferedReader(new InputStreamReader(con.getInputStream()));
// Printing status from Status Updater
String status = dataPtr.readLine();
if (status != null) {
System.out.println(status);
}
dataPtr.close();
Scanner in2 = new Scanner(System.in);
in2.nextLine();
}
}
catch (IOException e) {
System.err.println();
}
statusThread statusreq = new statusThread();
statusreq.start();
System.out.println("After the thread...");
}
catch (MalformedURLException e)
{
System.err.println();
}
}
class statusThread extends Thread {
// 2. This is the run() method with some sample contents
public void run() {
String status ="", lastStatus ="";
URL url;
try {
url = new URL("http://easternmotormall.com/teamdroidco/server/home.html");
System.out.println("Fetching status from the server, please wait.. (Thread started)");
while(true){
URLConnection con = url.openConnection();
BufferedReader dataPtr = new BufferedReader(new InputStreamReader(con.getInputStream()));
// Printing status from Status Updater
status = dataPtr.readLine();
if (status != null && !status.equals(lastStatus)) {
//new status!
lastStatus = status;
System.out.println(status);
}
else {
// do nothing or log something
}
dataPtr.close();
Scanner in2 = new Scanner(System.in);
in2.nextLine();
}
}
catch (IOException e) {
System.err.println();
}
}
}