2014-11-21 1 views
1

이번에는 내 질문에 명확하게 질문 할 수 있기를 바랍니다. 마지막 질문에 당황스러워서 삭제해야했습니다.Android BufferedReader try-with-resources

이 스 니펫은 내 애플리케이션 용으로 작성한 로거에서 가져온 것입니다. 이클립스 루나에서이 코드를 작성했을 때 아래에서 작성한 try() 문에서 오류가 발생하지 않았지만 코드를 Android Studio에 연결하면 "호환되지 않는 유형"오류가 발생합니다. 발견 된 타입은 "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 1.7을 지원하도록 JRE 컴파일을 업데이트 할 필요가 있습니다. –

+0

"소스 호환성"이 1.7로 설정되었습니다. 또한, 사용하고있는 JDK는 1.8.0입니다. 관련된? – Joe

답변

1

최소 API 레벨을 확인하십시오. java.lang.AutoCloseable 인터페이스 API (19)까지 안드로이드 추가 할 수 없습니다 그래서 자바 7 '시도 -과 - 자원'기능을 사용할 수 없습니다 당신이 자바 7 으로 구축하지 않는 한 minSdkVersion은 19

+0

오류가 사라진 것 같습니다! 고마워. Java, Android 및 프로그래밍에 익숙하지 않습니다. 나는 우리 회사의 기본 응용 프로그램을 개발하는 임무를 맡았으며 천천히 모든면을 배우고 있습니다. – Joe

+0

이전 버전의 Android 19에서 BufferedReader를 대체 할 다른 클래스가 있습니까? –

+0

'BufferedReader'는 API 1 이후 프레임 워크에 포함되어 있습니다. 새로운 것은 아닙니다. 이 게시물의 새로운 점은 * 리소스가있는 try-with * 기능 (예 :'BufferedReader'를 작성하는'try' 키워드 다음의 명령문)입니다. –