私はテキストファイルにあるものを読み込み、textField2天気でそれが変更されているかどうかを表示したいと思う次のコードを持っています...もしあれば、それを続行する必要があります。それがない場合は、ファイルが空に変更されるまで再度チェックする必要があります。誰も助けることができますか?ここに私のコードは次のとおりです。テキストファイル内のテキストが空に変更されているかどうかを継続的に確認するにはどうすればよいですか? Java
package application;
import javafx.event.ActionEvent;
import javafx.scene.control.TextField;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.Parent;
import javafx.fxml.FXMLLoader;
import javafx.fxml.FXML;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Main extends Application {
\t @Override
\t public void start(Stage primaryStage) {
\t \t try {
\t \t \t // BorderPane root = new BorderPane();
\t \t \t Parent root = FXMLLoader.load(getClass().
\t \t \t \t \t getResource("Root.fxml"));
\t \t \t
\t \t \t Scene scene = new Scene(root,550,400);
\t \t \t scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
\t \t \t primaryStage.setScene(scene);
\t \t \t primaryStage.show();
\t \t } catch(Exception e) {
\t \t \t e.printStackTrace();
\t \t }
\t }
\t
\t public static void main(String[] args) {
\t \t launch(args);
\t }
\t
\t @FXML
\t private TextField textField;
\t
\t @FXML
\t private TextField textField2;
\t
\t @FXML
\t protected void onClick(ActionEvent event) throws IOException {
BufferedWriter writer = null;
try {
//create a temporary file
// This will output the full path where the file will be written to...
writer = new BufferedWriter(new FileWriter("C:/Users/Custom/Documents/Sample.txt"));
writer.write(textField.getText());
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// Close the writer regardless of what happens...
writer.close();
} catch (Exception e) {
}
while (readFile("C:/Users/Custom/Documents/Sample.txt") != ""){
\t textField2.setText("Waiting...");
}
textField2.setText("Done!");
\t }
}
\t String readFile(String fileName) throws IOException {
\t BufferedReader br = new BufferedReader(new FileReader(fileName));
\t try {
\t StringBuilder sb = new StringBuilder();
\t String line = br.readLine();
\t while (line != null) {
\t sb.append(line);
\t sb.append("\n");
\t line = br.readLine();
\t }
\t return sb.toString();
\t } finally {
\t br.close();
\t }
\t }
}
変更したかどうかは、ファイルのタイムスタンプで確認できます。いつ空の文字列を返すのですか? – Boola
の条件を指定すると、ループは可能な限り高速で実行されます。これは良くないので必要ありません。代わりにこのロジックを別のスレッドに書き込んで、ファイルの内容チェックのたびに1秒後にスレッドをスリープさせることができます。また、内容を確認する代わりにファイルサイズのバリエーションをチェックすることもできます。 –
申し訳ありませんが、私はJavaに慣れていないので、redflar3はわかりません。もう少し詳しく教えてもらえますか?私は興味をそそられる。 –