更好,更快捷地从URL读取字符串

时间:2011-09-28 13:49:50

标签: java url

我正在使用此代码来读取给定网址中的内容。是否有更快更好的方法来做到这一点?

private static String readUrl(String urlString) throws Exception {
    BufferedReader reader = null;
    try {
        URL url = new URL(urlString);
        reader = new BufferedReader(new InputStreamReader(url.openStream()));
        StringBuffer buffer = new StringBuffer();
        int read;
        char[] chars = new char[1024];
        while ((read = reader.read(chars)) != -1)
            buffer.append(chars, 0, read); 

        return buffer.toString();
    } finally {
        if (reader != null)
            reader.close();
    }
}

4 个答案:

答案 0 :(得分:1)

使用StringBuilder代替StringBuffer

答案 1 :(得分:1)

这是一个HTTP URL吗?如果是,那么你

  • 必须查看Content-Type标题并确保您的标题 将正确的编码应用于流。实际上,您正在应用默认编码 您的特定JVM安装,可能与服务器发送的内容不对应
  • 查看Content-Length标题以预先调整缓冲区大小。

除了这两个变化之外,没有太多机会加速网络中的字节数。

编辑:您还可以使用Jakarta Commmons IOUtils.toString()来读取流。这将减少您必须编写的代码量(并且可以假设完全调试)。但是,它必须在整个过程中调整缓冲区大小。

答案 2 :(得分:0)

有网上的libs / source会为你做这件事:

http://json.org/java/

答案 3 :(得分:0)

您也可以使用“BufferedReader.readLine()”