2014-01-07 58 views
0

我有一個緩衝區讀取器,用於讀取文本文件,然後將讀取的數據保存爲字符串。緩衝器閱讀器處於連續循環中,每秒鐘讀取文本文件。如果緩衝區讀取器連續讀取兩次相同的文本,我想要執行Thread.sleep。如果讀取同一文本,請停止BufferedReader

例如,如果緩衝區讀取器讀取「foo」,那麼當它在下一秒再次運行時,如果它再次讀取「foo」,則線程會休眠一段時間。

我有一個嘗試方法內的緩衝區閱讀器,但我不知道如何讓它做到上述。

任何人都可以幫忙嗎?

感謝前行的

回答

4

跟蹤一個字符串變量,您可以初始化爲空字符串讀入。當你在每一行中讀取時,檢查它是否爲equals()到先前存儲在該變量中的行。如果是這樣,做你想做的,如Thread.sleep()。否則,將當前行保存到該變量中。代碼:

BufferedReader reader = new BufferedReader(new FileReader("foo.txt")); 
    String foo = ""; 
    String old = ""; 
    while((foo = reader.readLine()) != null) { 
     if(foo.equals(old)) { 
      System.out.println("Sleeping..."); 
      Thread.sleep(1000); 
     } else { 
      old = foo; 
     } 
    } 
相關問題