2014-11-21 21 views
1

希望這次我可以清楚地問我的問題,我最後一個問題讓我感到尷尬,所以我不得不刪除它。Android BufferedReader試用資源

這段代碼來自我爲我的應用程序編寫的記錄器。當我在Eclipse Luna中寫這篇文章時,我在下面的try()語句中沒有給出任何錯誤,但是當我將代碼插入到Android Studio中時,我得到一個「Incompatible types」錯誤。它聲明找到的類型是「java.io.BufferedReader」,並且期望是「java.lang.AutoCloseable」。我錯過了什麼?

File filePointer = new File(logFile); 
    boolean bool = false; 
    bool = filePointer.exists(); 
    String ls = System.getProperty("line.separator"); 

    if(bool == true) { 
     try (BufferedReader br = new BufferedReader(new FileReader(logFile))) { 
      StringBuilder sb = new StringBuilder(); 
      String line = br.readLine(); 

      while(line != null){ 
       sb.append(line); 
       sb.append(ls); 
       line = br.readLine(); 
      } 
      copiedFile = sb.toString(); 
     } 
     finally{ 
      br.close(); 
     } 
    } 
+0

它可能會給你錯誤的錯誤。您可能需要更新JRE編譯以支持至少JRE 1.7 – 2014-11-21 20:24:09

+0

我的「源代碼兼容性」設置爲1.7。另外,我使用的JDK是1.8.0。有關? – Joe 2014-11-21 20:37:43

回答

1

檢查您的最低API級別。未添加java.lang.AutoCloseable接口到Android直到API 19.因此,Java 7的「嘗試 - 用資源」功能不可用,除非你是使用Java 7 構建minSdkVersion設置爲19

+0

錯誤似乎已消失!感謝那。我對Java,Android和編程一般都很陌生。我一直負責爲我們公司開發基本應用程序,並且正在慢慢地學習所有方面。 – Joe 2014-11-21 21:17:41

+0

在以前的Android 19版本中是否有另一個類來替換BufferedReader? – 2016-09-19 19:21:33

+0

自從API 1開始,BufferedReader就已經在框架中了,它並不新鮮。這篇文章中的新事物是* try-with-resources *功能(例如,創建「BufferedReader」的'try'關鍵字之後的語句)。 – 2016-09-19 20:50:43