Java中高效地将文件从URL读取到byte[]中

2024-04-01

我正在尝试找到一种更有效的方法来从远程 URL 读取文件并将其保存到字节数组中。这是我目前拥有的:

private byte[] fetchRemoteFile(String location) throws Exception {
  URL url = new URL(location);
  InputStream is = null;
  byte[] bytes = null;
  try {
    is = url.openStream ();
    bytes = IOUtils.toByteArray(is);
  } catch (IOException e) {
    //handle errors
  }
  finally {
    if (is != null) is.close();
  }
  return bytes;
}

正如您所看到的,我当前将 URL 传递到该方法中,该方法使用 InputStream 对象读取文件的字节。此方法使用 Apache Commons IOUtils。然而,该方法调用往往需要相对较长的时间来运行。当一个接一个地检索数百、数千或数十万个文件时,它会变得非常慢。有没有办法改进这个方法,使其运行更有效?我考虑过多线程,但我想把它作为最后的手段。


你的做法看起来绝对没问题。

但如果你说:

“但是,这种方法调用往往需要相对较长的时间 跑步”

您可能会遇到以下问题:

  • 网络、连接问题

  • 您确定在单独的线程中下载每个文件吗?

如果您为此使用多线程,请确保 VM args-XmsYYYYM and -XmxYYYYM配置良好,因为如果没有配置好,您可能会面临问题,即您的处理器未使用所有核心。我前段时间遇到过这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中高效地将文件从URL读取到byte[]中 的相关文章

  • Spring安全“记住我”cookie在第一个请求中不可用

    我无法在登录请求后检索 Spring 记住我 cookie 但它在对受保护页面的下一个请求中工作正常 谁能告诉我怎样才能立即得到它 我在登录请求中设置了记住我的 cookie 但在 Spring 重定向回原始 受保护的 url 后无法检索它
  • 在文本文件中搜索单词并返回其频率

    如何在包含单词文本的文本文件中搜索特定单词并返回其频率或出现次数 使用扫描仪 String text Question how to search for a particular word in a text file containin
  • 如何在 JSP 中导入类?

    我是一个完全的JSP初学者 我正在尝试使用java util List在 JSP 页面中 我需要做什么才能使用除以下类之外的类java lang 使用以下导入语句进行导入java util List 顺便说一句 要导入多个类 请使用以下格式
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • 主线程如何在该线程之前运行?

    我有以下代码 public class Derived implements Runnable private int num public synchronized void setA int num try Thread sleep 1
  • 如何将 android.net.Uri 转换为 java.net.URL? [复制]

    这个问题在这里已经有答案了 有没有办法从Uri to URL 我正在使用的库需要这个 它only接受一个URL但我需要在我的设备上使用图像 如果该方案的Uri is http or https new URL uri toString 应该
  • Java:正则表达式排除空值

    在问题中here https stackoverflow com questions 51359056 java regexp for a separated group of digits 我得到了正则表达式来匹配 1 到 99 之间的一
  • Java 服务器-客户端 readLine() 方法

    我有一个客户端类和一个服务器类 如果客户端向服务器发送消息 服务器会将响应发送回客户端 然后客户端将打印它收到的所有消息 例如 如果客户端向服务器发送 A 则服务器将向客户端发送响应 1111 所以我在客户端类中使用 readLine 从服
  • C# 将数据写入 CSV 文件

    我正在尝试写入csv使用 C 语言逐行文件 这是我的功能 string first reader 0 ToString string second image ToString string csv string Format 0 1 n
  • 隐式超级构造函数 Person() 未定义。必须显式调用另一个构造函数?

    我正在开发一个项目 但收到错误 隐式超级构造函数 Person 未定义 必须显式调用另一个构造函数 我不太明白它 这是我的人物课程 public class Person public Person String name double D
  • 如何将 Jfreechart(饼图)添加到 netbeans 的面板中

    我正在使用 netbeans gui 编辑器 并且正在尝试添加一个本身位于内部框架中的 Jfreechart 并且这个内部框架我想将其添加到面板中 正如您在此图中看到的那样 抱歉 我无法直接发布图像 因为我新手 http www flick
  • 在 angular2 中过滤数组

    我正在研究如何在 Angular2 中过滤数据数组 我研究过使用自定义管道 但我觉得这不是我想要的 因为它似乎更适合简单的表示转换 而不是过滤大量数据 数组排列如下 getLogs Array
  • Cloudfoundry:如何组合两个运行时

    cloundfoundry 有没有办法结合两个运行时环境 我正在将 NodeJS 应用程序部署到 IBM Bluemix 现在 我还希望能够执行独立的 jar 文件 但应用程序失败 APP 0 bin sh 1 java not found
  • Dispatcher-servlet 无法映射到 websocket 请求

    我正在开发一个以Spring为主要框架的Java web应用程序 特别使用Spring core Spring mvc Spring security Spring data Spring websocket 像这样在 Spring 上下文
  • 如何在 Eclipse Java 动态 Web 项目中使用 .properties 文件?

    我正在 Eclipse 中开发动态 Web 项目 我创建了一个 properties 文件来存储数据库详细信息 用户名 密码等 我通过右键单击项目和 New gt File 添加它 我使用了Java util包Properties类 但它不
  • 逃离的正确方法是什么?使用 Oracle 12c MATCH_RECOGNIZE 时 JDBCPreparedStatement 中的字符?

    以下查询在 Oracle 12c 中是正确的 SELECT FROM dual MATCH RECOGNIZE MEASURES a dummy AS dummy PATTERN a DEFINE a AS 1 1 但它不能通过 JDBC
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • 挂钩 Eclipse 构建过程吗?

    我希望在 Eclipse 中按下构建按钮时能够运行一个简单的 Java 程序 目前 当我单击 构建 时 它会运行一些 JRebel 日志记录代码 我有一个程序可以解析 JRebel 日志文件并将统计信息存储在数据库中 是否可以编写一个插件或
  • Java &= 运算符应用 & 或 && 吗?

    Assuming boolean a false 我想知道是否这样做 a b 相当于 a a b logical AND a is false hence b is not evaluated 或者另一方面 这意味着 a a b Bitwi
  • 嵌入式 Jetty - 以编程方式添加基于表单的身份验证

    有没有一种方法可以按如下方式以编程方式添加基于表单的身份验证 我用的是我自己的LdapLoginModule 最初我使用基本身份验证并且工作正常 但现在我想在登录页面上进行更多控制 例如显示徽标等 有没有好的样品 我正在使用嵌入式 jett

随机推荐

  • 32 位操作系统上的 JVM 堆大小

    我使用的是 32 位 win 7 并使用 Eclipse 还有 4GB 内存 我想为我的 java 应用程序分配大约 3 GB 的最大堆大小 但我可以通过 VM 参数分配最大 1 5GB Xmx1056m 我应该怎么办 如果我安装64位wi
  • ng --version 显示 Angular 不支持当前版本的 Node (16.8.0)

    我刚刚安装了最新版本节点 16 8 using nvm and 角度 cli 12 2 但当我跑步时ng version 它显示以下内容 警告 Angular 不支持当前版本的 Node 16 8 0 我尝试降级节点并安装节点 14 15
  • 提交带有请求的表单未通过

    我真的尝试过自己解决这个问题 但我是 pyhon 的新手 所以我无法做到这一点 我一直在尝试为我使用的网站制作一个机器人 并且我正在尝试使用请求库来做到这一点 到目前为止 我的目标非常简单 登录并回复主题 我已经能够通过网络表单登录 但在通
  • 如何使用 Terraform 创建不具有代入角色策略的 AWS IAM 角色?

    使用 AWS MediaConvert 时 说明提供了示例 IAM 政策 https docs aws amazon com mediaconvert latest ug example inline policy kms decrypt
  • 如何最大化 UWP 窗口(非全屏)

    如何使用 C 最大化 UWP 项目中的窗口 不是全屏 我尝试使用窗口边界作为参数的 TryResizeView 方法 但没有任何反应 Thanks 目前在 UWP 中这是不可能的 所以 我无法让你最大化 但我可以让你非常接近 var av
  • Ansible、瞻博网络 CLI 命令。超时错误?

    我正在尝试将我用 Python 编写的自动化脚本传输到 ansible 公司请求 但我以前从未使用过 ansible 我已经尝试过 wait for 但我也没有让它发挥作用 在脚本中 我可以设置 dev timeout None 或我需要的
  • Bower/bower-asset 在 yii2 等 php 应用程序中扮演什么角色

    最近我部署了一些项目 例如trntv yii2 starter kit https github com trntv yii2 starter kit 等等 但所有应用程序都在 vendor bower 而不是 vendor bower b
  • 使用 XSLT 在字符串/子字符串中的每个实例之后进行选择

    我正在尝试编写一个 XSLT 样式表 该样式表将处理 Dublin Core XML 编目记录并为每本书创建芝加哥 APA 和 MLA 版本的引文 除了 APA 作者的问题之外 我一切都进展顺利 APA 的作者风格需要作者的姓氏 完成 逗号
  • 最佳实践:显示通过多行文本框输入的文本

    我有一个多行文本框 当用户简单地键入时 文本框会包裹文本 并将其保存为单行 用户也可能输入换行符 例如在输入 项目符号 列表时 例如 Here are some suggestions fix this remove that and an
  • 将数据传递到 Rails 部分

    编辑 解决方案完美运行 dom id http api rubyonrails org classes ActionController RecordIdentifier html 我正在尝试将数据传递给部分数据并使用它来更改用户的角色 目
  • 如何使用支持库修复缩放的 FloatingActionButton 上的阴影 23

    我在使用支持库 23 的 KitKat 设备上有一个 FAB 我正在缩放按钮以获得过渡效果 通过将其包含在调整大小的视图中 这基本上与阴影不同 阴影以一种奇怪的形式出现 参见屏幕截图中缩放的红色按钮 蓝色按钮是全尺寸 实际发生的情况是 阴影
  • C# 验证 CRL 列表中的证书

    如何以编程方式检查某个证书是否已从其 CA CRL 列表中撤销 我正在这样做 X509Chain ch new X509Chain ch ChainPolicy RevocationMode X509RevocationMode Onlin
  • SoapFaultMappingExceptionResolver 永远不会遇到常规 java 异常

    谁能告诉我为什么我无法使用解析器捕获常规 Java 异常 以便我可以在响应发回之前对其进行转换 它永远不会遇到断点 如果不可能 我该怎么办 SoapFaultMappingExceptionResolver public class Lis
  • Conda 环境中出现意外的 Python 路径

    在 Conda 环境中 base在这里 我对 Python 路径中的目录顺序感到惊讶 python c import sys print sys path export projects III data wcmp bioinformati
  • 如何在 Java 中刷新 GUI?

    我有一个与 Java 相关的一般性问题 我正在编写一个具有 GUI 菜单的应用程序 我正在尝试根据单选按钮的选择来更改 GUI 菜单的一部分 我需要 重绘整个窗口或仅更新该部分 setVisible true 如果我只使用上面 1 中的语句
  • git 从“工作树”中查找提交

    假设有人克隆了一个 git 存储库并删除了 git 文件夹 有没有办法恢复他们所在的提交 这不是重复的恢复 git 文件夹的最佳方法 https stackoverflow com q 24775326 1248889 or 删除的 git
  • Kubernetes 相当于 `docker run --init`

    建议的最佳实践是不要将 dockerized Node JS 应用程序作为 PID 1 运行 请参阅https github com nodejs docker node blob master docs BestPractices md
  • 如何通过其接口定义composite内部repeater的内容?

    我有一个复合组件ui repeat并想要定义的内容ui repeat通过复合材料的界面 以下代码在 MyFaces 中工作 但看起来更像是一个 hack 因为变量名称varRepeat必须在复合之外已知 并且仅在没有提供应在其他地方渲染的其
  • 如何将位图保存到手机图库中? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我拍一张照片并在图像视图中显示它 然
  • Java中高效地将文件从URL读取到byte[]中

    我正在尝试找到一种更有效的方法来从远程 URL 读取文件并将其保存到字节数组中 这是我目前拥有的 private byte fetchRemoteFile String location throws Exception URL url n