【问题标题】:BufferedReader does not work wellBufferedReader 不能正常工作
【发布时间】:2016-06-14 12:10:58
【问题描述】:

正在使用BufferedReader 加载以下 URL,但未传递内容。即使普通浏览器可以显示内容。所以str 将保持为零。知道为什么吗?

URL url = new URL("http://www.omdbapi.com/?t=zorr&y=&plot=short&r=json");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str = in.readLine()) != null) {}
Log.d("alma", str);

【问题讨论】:

  • 您的循环除了消耗输入并将其丢弃之外什么都不做,然后在str 变为空时退出。所以它是空的。你到底期待什么?

标签: java android bufferedreader


【解决方案1】:

您忽略了正在阅读的所有行。然后当str 变为null 时退出循环。因此,您的Log.d() 呼叫将始终显示null

如果您想使用正在阅读的行,请使用str inside`您当前的空块:

while ((str = in.readLine()) != null) {
  // do something with str
}

您可能还希望考虑使用提供更简单 API 的第三方库。例如,OkHttp3 从 URL fairly easy 获取字符串响应。

【讨论】:

    【解决方案2】:

    试试这个:

    URL url = new URL("http://www.omdbapi.com/?t=zorr&y=&plot=short&r=json");
    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
    String str;
    while ((str = in.readLine()) != null) {
       Log.d("alma", str); // this should be here
    }
    

    【讨论】:

      猜你喜欢
      • 2013-03-30
      • 2010-11-30
      • 2021-10-02
      • 2017-08-06
      • 2013-11-22
      • 1970-01-01
      • 2013-09-10
      • 2017-04-05
      • 2013-07-25
      相关资源
      最近更新 更多