【问题标题】:Read url content into a String将 url 内容读入字符串
【发布时间】:2014-03-28 06:16:02
【问题描述】:

我正在通过以下方法读取缓冲阅读器的内容:

public static String readBuffer(Reader reader, int limit) throws IOException 
{           
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < limit; i++) {
        int c = reader.read();
            if (c == -1) {
                return ((sb.length() > 0) ? sb.toString() : null);
            }
        if (((char) c == '\n') || ((char) c == '\r')) {
            break;
    }
        sb.append((char) c);
}
    return sb.toString();
}   

我稍后会调用这个方法来测试-

URL url = new URL("http://www.oracle.com/");
    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));        
    StringBuffer sb = new StringBuffer();
    String line=null;
    while((line=readBuffer(in, 2048))!=null) {
        sb.append(line);
    }
    System.out.println(sb.toString());

我的问题是,我在第一种方法中将 bufferedreader 的内容返回到一个字符串中,并在第二种方法中再次将这些 String 内容附加到 StringBuffer 中,然后读出它。这是正确的方法吗?我可以通过其他方式读取包含来自 url 的内容的字符串内容吗?请告知。

【问题讨论】:

  • BufferedReader#readLine有什么问题吗?
  • 不,不是重复的。
  • @RC - 请先阅读问题,然后再将其标记为重复,并投票决定关闭它!
  • @rickygrimes 我用我的选票做我想做的事。我认为这是重复的,而您没有(这是您的权利)。这可能就是为什么一个问题需要 5 票才能关闭为重复

标签: java


【解决方案1】:

我希望这有效 -

public static String readFromURL(){
    URL url = new URL("http://www.oracle.com/");
    StringBuilder responseBuilder = new StringBuilder();
    HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
    httpCon.setDoOutput(true);
    httpCon.setDoInput(true);

    int resCode = httpCon.getResponseCode();
    InputStream is = null;
    if (resCode == 200) {
         is = httpCon.getInputStream();
         BufferedReader reader = new BufferedReader(
                 new InputStreamReader(is));
         String response = null;
         while (true) {
             response = reader.readLine();
             if (response == null)
                 break;
             responseBuilder.append(response);
         }
    }
    return responseBuilder.toString();
}

【讨论】:

    猜你喜欢
    • 2011-08-17
    • 2012-05-05
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 2014-07-01
    • 2012-05-24
    • 2011-02-24
    相关资源
    最近更新 更多