【问题标题】:Android BufferedReader try-with-resourcesAndroid BufferedReader try-with-resources
【发布时间】:2014-11-21 19:44:28
【问题描述】:

希望这次我能清楚地提出我的问题,我对上一个问题感到尴尬,所以我不得不删除它。

这个 sn-p 来自我正在为我的应用程序编写的记录器。当我在 Eclipse Luna 中编写此代码时,我在下面的 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();
        }
    }

【问题讨论】:

  • 它可能会给你错误的错误。您可能需要更新 JRE 编译以支持至少 JRE 1.7
  • 我的“源兼容性”设置为 1.7。另外,我使用的 JDK 是 1.8.0。相关吗?

标签: java android bufferedreader


【解决方案1】:

检查您的最低 API 级别。 java.lang.AutoCloseable 接口直到 API 19 才添加到 Android。因此 Java 7 的“try-with-resources”功能不可用,除非您使用 Java 7 和您的 minSdkVersion设置为 19。

【讨论】:

  • 错误似乎已经消失了!感谢那。我是 Java、Android 和一般编程的新手。我的任务是为我们公司开发一个基本应用程序,并且正在慢慢学习各个方面。
  • Android 19 之前的版本中是否有另一个类可以替代 BufferedReader?
  • BufferedReader 自 API 1 以来一直在框架中,它并不新鲜。这篇文章中的新内容是 try-with-resources 功能(例如,try 关键字后面的语句创建了BufferedReader。)
猜你喜欢
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-18
  • 2013-07-21
  • 1970-01-01
  • 2019-03-12
相关资源
最近更新 更多