”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何用Java将URL内容读入字符串?

如何用Java将URL内容读入字符串?

发布于2024-12-22
浏览:621

How to Read URL Content into a String with Java?

使用 Java 将 URL 内容读入字符串

编程中的一个常见需求是检索 URL 的内容并将它们存储为细绳。在 Groovy 中,此任务通过简洁的语法得到简化:

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

但是,查找Java 中的等效实现可能更具挑战性。虽然 Java 为该任务提供了多种选项,但其中许多都涉及复杂的缓冲和循环结构。

简化方法

幸运的是,自从最初要求一个简洁的解决方案以来, Java引入了更直接的方法:

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

这一行利用 Scanner 类读取从 URL 获取的流,将整个流视为单个字符串。

扩展实现

如果需要,可以创建更完整的实现,如下所示:

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

该方法以URL作为输入,返回对应的字符串内容。

最新教程 更多>
  • 插入数据时如何修复“常规错误:2006 MySQL 服务器已消失”?
    插入数据时如何修复“常规错误:2006 MySQL 服务器已消失”?
    插入记录时如何解决“一般错误:2006 MySQL 服务器已消失”介绍:将数据插入 MySQL 数据库有时会导致错误“一般错误:2006 MySQL 服务器已消失”。当与服务器的连接丢失时会出现此错误,通常是由于 MySQL 配置中的两个变量之一所致。解决方案:解决此错误的关键是调整wait_tim...
    编程 发布于2024-12-22
  • 在 Go 中使用 WebSocket 进行实时通信
    在 Go 中使用 WebSocket 进行实时通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    编程 发布于2024-12-22
  • Go处理数据后如何高效释放内存?
    Go处理数据后如何高效释放内存?
    查询Go中的内存释放原问题:如何释放未使用的内存,特别是变量占用的内存,处理后释放吗?详细说明:功能getURL 下载 20MB 以下的文件,并将其内容存储在名为 body 的字节片中。虽然功能正常,但这会累积内存使用量。目标是在处理完 body 后释放这块内存。综合响应:Go 中的内存管理:Go ...
    编程 发布于2024-12-22
  • 为什么切换到 JDK 10 后 Eclipse 无法找到我的 XML 类?
    为什么切换到 JDK 10 后 Eclipse 无法找到我的 XML 类?
    Eclipse 无法定位 JDK 10 构建路径转换后的 XML 类:解决方案尝试将 Maven 项目的构建路径切换到 JDK 10 时在 Eclipse 中,用户可能会遇到 Eclipse 构建过程无法找到 XML 相关类(包括 javax.xml.xpath.XPath)的问题, org.w3c...
    编程 发布于2024-12-22
  • 如何在 JSON 中序列化 Python 日期时间对象?
    如何在 JSON 中序列化 Python 日期时间对象?
    日期时间对象的 JSON 序列化当尝试使用 jsonify() 函数将包含日期时间对象的 Python 字典转换为 JSON 时,您可以遇到错误“datetime.datetime 不可 JSON 序列化”。出现此错误的原因是 JSON 本身不支持日期时间对象。要解决此问题并成功序列化字典,您可以使...
    编程 发布于2024-12-22
  • 如何避免 C++ 类方法中的隐藏变量?
    如何避免 C++ 类方法中的隐藏变量?
    C 中的阴影变量 在类中定义变量时,C 允许在不同作用域中使用具有相同名称的变量。这种现象称为“影子变量”,可能会导致混乱和意外行为。在给定的类定义中:class Measure { int N; double measure_set[]; char nomefile[]; double T; };...
    编程 发布于2024-12-22
  • Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta:列偏移的删除和恢复Bootstrap 4 在其 Beta 1 版本中引入了重大更改柱子偏移了。然而,随着 Beta 2 的后续发布,这些变化已经逆转。从 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    编程 发布于2024-12-22
  • 如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 识别今天生日的用户使用 MySQL 确定今天是否是用户的生日涉及查找生日匹配的所有行今天的日期。这可以通过一个简单的 MySQL 查询来实现,该查询将存储为 UNIX 时间戳的生日与今天的日期进行比较。以下 SQL 查询将获取今天有生日的所有用户: FROM USERS ...
    编程 发布于2024-12-22
  • 如何将 Bootstrap 轮播标题垂直居中并将其稍微向左放置?
    如何将 Bootstrap 轮播标题垂直居中并将其稍微向左放置?
    垂直对齐 Bootstrap 轮播标题要使轮播标题垂直居中并将其稍微向左放置,您可以利用 CSS 属性的变换翻译Y function.HTML:<!-- start JumboCarousel --> <div id="jumboCarousel" class=...
    编程 发布于2024-12-22
  • 如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?
    如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?
    MySQL配置不正确:相对路径的问题在Django中运行python manage.py runserver时,可能会遇到以下错误:ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Python/2.7/site-...
    编程 发布于2024-12-22
  • CommandType.StoredProcedure 或 CommandType.Text:何时应在 C# 中使用每个存储过程?
    CommandType.StoredProcedure 或 CommandType.Text:何时应在 C# 中使用每个存储过程?
    CommandType.StoredProcedure 与 CommandType.Text 存储过程在 C# 中执行存储过程时,开发人员可能想知道以下优点:使用 CommandType.StoredProcedure 与 CommandType.Text。本文探讨了差异并提供了有关何时使用每种方法...
    编程 发布于2024-12-22
  • 如何在 Apache FOP 生成的 PDF 中使用 SimSun 显示汉字?
    如何在 Apache FOP 生成的 PDF 中使用 SimSun 显示汉字?
    Apache FOP 使用 SimSun 显示汉字很多用户都遇到过汉字显示为“####”的问题使用 Apache FOP 生成的 PDF 文档。解决这个问题涉及三个步骤。首先,需要在 FO 文件中指定所需的字体系列。默认情况下,FOP 使用 Helvetica 字体,该字体可能不支持中文字符。要指定...
    编程 发布于2024-12-22
  • 如何从 MySQL 日期时间字段中减去小时?
    如何从 MySQL 日期时间字段中减去小时?
    在 MySQL 中从日期时间减去小时数由于 GMT 问题,您想要从日期时间字段中减去 3 小时。实现此目的的一种方法是使用 DATE_SUB() MySQL 函数。解决方案:SELECT DATE_SUB(column, INTERVAL 3 HOUR)....通过将列替换为日期时间字段,此查询将从...
    编程 发布于2024-12-22
  • HTML 格式标签
    HTML 格式标签
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    编程 发布于2024-12-22
  • 除了“if”语句之外:还有什么地方可以在不进行强制转换的情况下使用具有显式“bool”转换的类型?
    除了“if”语句之外:还有什么地方可以在不进行强制转换的情况下使用具有显式“bool”转换的类型?
    无需强制转换即可上下文转换为 bool您的类定义了对 bool 的显式转换,使您能够在条件语句中直接使用其实例“t”。然而,这种显式转换提出了一个问题:“t”在哪里可以在不进行强制转换的情况下用作 bool?上下文转换场景C 标准指定了四种值可以根据上下文转换为的主要场景bool:语句:if、whi...
    编程 发布于2024-12-22

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3