首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法解析Java - Reader

无法解析Java - Reader
EN

Stack Overflow用户
提问于 2013-11-25 18:32:22
回答 2查看 2.1K关注 0票数 0

我的java语法有点小问题,我被哪里出了问题给难住了。问题出在我的BufferedReader中:"finally{reader.close();}“,它说reader不能被解决,但在它之前的"try”中,它被解决了,没有问题。以下是正在讨论的代码部分。我只是尝试使用oAuth 2.0授权将提取的Twitter API1.1JSON结果解析为易于阅读的内容。我会很感激你的意见。

代码语言:javascript
复制
    /////////////////////////////////////////////////////////////
// AsyncTask - Download Twitter Feed w/Token as authorization
// //////////////////////////////////////////////////////////

protected class loadTwitterFeed extends AsyncTask<Void, Void, Integer> {

    @Override
    protected Integer doInBackground(Void... params) {

         try{
            DefaultHttpClient httpclient = new DefaultHttpClient(
                    new BasicHttpParams());
            HttpGet httpget = new HttpGet(tweeterURL);
            httpget.setHeader("Authorization", "Bearer " + twitterToken);
            httpget.setHeader("Content-type", "application/json");

            InputStream inputStream = null;
            HttpResponse response = httpclient.execute(httpget);
            HttpEntity entity = response.getEntity();

            inputStream = entity.getContent();
            BufferedReader reader = new BufferedReader(
                    new InputStreamReader(inputStream, "UTF-8"), 8);
            return null;
         }

    finally{
        reader.close();
    }
    }

         protected void onPostExecute(String result) {

            StringBuilder sb = new StringBuilder();
            try{
            JSONObject resultObject = new JSONObject(result);
            org.json.JSONArray tweetArray = resultObject.getJSONArray("results");
            for (int t=0; t<tweetArray.length(); t++) {
                JSONObject tweetObject = tweetArray.getJSONObject(t);
                sb.append(tweetObject.getString("from_user")+": ");
                sb.append(tweetObject.get("text")+"\n\n");
            }
            }
            catch (Exception e) {
                Log.e("Tweet", "Error retrieving JSON stream" + e.getMessage());
                jsonFeed = sb.toString();
                e.printStackTrace();
            }   

             }
        }
            /* String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            } */



    protected void onPostExecute(Integer result) {
        // Update GUI
        if (jsonFeed.length()>0){
            twitterText.setText(jsonFeed.toString());
        //if (jsonFeed.length() > 0) {
            //twitterText.setText(jsonFeed);
        } else {
             //I'd assume wrong Consumer Key/Secret if this happens.
            twitterText.setText("Nothing Returned");
        }       
    }
 }
EN

回答 2

Stack Overflow用户

发布于 2013-11-25 18:33:47

try外部声明reader

代码语言:javascript
复制
BufferedReader reader = null;
try {
reader = ..
..
}
finally {
if(reader != null)
reader.close();
}
票数 1
EN

Stack Overflow用户

发布于 2013-11-25 18:35:42

您的BufferedReader不在正确的作用域中。在try块外部声明它。

代码语言:javascript
复制
  BufferedReader reader =null;// Declare here.

  try{
     ............
   reader = new BufferedReader(
                new InputStreamReader(inputStream, "UTF-8"), 8);

   }
   finally{
    reader.close();
   }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20189853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档