一尘不染

在几行Java代码中将url读取为字符串

java

我试图找到与Groovy等效的Java:

String content = "http://www.google.com".toURL().getText();

我想将URL中的内容读取为字符串。我不想用如此简单的任务用缓冲的流和循环来污染我的代码。我查看了apache的HttpClient,但也没有看到一两行的实现。


阅读 511

收藏
2020-03-10

共1个答案

一尘不染

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

String out = new Scanner(new URL("http://www.google.com").openStream(), "UTF-8").useDelimiter("\\A").next();

如果你想要一个更完整的实现(不是一行),请执行以下操作:

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() : "";
    }
}
2020-03-10