首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在几行java代码中读取url to string

在几行java代码中读取url to string
EN

Stack Overflow用户
提问于 2010-12-02 04:22:20
回答 9查看 212.8K关注 0票数 163

我正在尝试寻找Java与Groovy的等价物:

代码语言:javascript
复制
String content = "http://www.google.com".toURL().getText();

我想把URL中的内容读成字符串。对于这么简单的任务,我不想用缓冲流和循环来污染我的代码。我研究了apache的HttpClient,但我也没有看到一两行代码的实现。

EN

回答 9

Stack Overflow用户

发布于 2012-11-30 02:17:08

自从最初的答案被接受以来,已经过去了一段时间,现在有了更好的方法:

代码语言:javascript
复制
String out = new Scanner(new URL("http://www.google.com").openStream(), "UTF-8").useDelimiter("\\A").next();

如果您想要一个稍微完整一点的实现,而不是一行,请执行以下操作:

代码语言:javascript
复制
public static String readStringFromURL(String requestURL) throws IOException
{
    try (Scanner scanner = new Scanner(new URL(requestURL).openStream(),
            StandardCharsets.UTF_8.toString()))
    {
        scanner.useDelimiter("\\A");
        return scanner.hasNext() ? scanner.next() : "";
    }
}
票数 143
EN

Stack Overflow用户

发布于 2013-05-05 09:10:31

或者只使用Apache Commons IOUtils.toString(URL url),或者也接受编码参数的变体。

票数 84
EN

Stack Overflow用户

发布于 2015-10-12 10:50:02

现在更多的时间已经过去了,下面是在Java 8中实现这一点的方法:

代码语言:javascript
复制
URLConnection conn = url.openConnection();
try (BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8))) {
    pageText = reader.lines().collect(Collectors.joining("\n"));
}
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4328711

复制
相关文章

相似问题

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