当前位置: 首页 > 知识库问答 >
问题:

当从URL下载文件时,我们为什么要读入字节数组?

唐和洽
2023-03-14
while ((x = in.read(data, 0, 1024)) >= 0)
URL url = new URL("http://downloads.sourceforge.net/project/bitcoin/Bitcoin/blockchain/bitcoin_blockchain_170000.zip");
HttpURLConnection httpConnection = (HttpURLConnection) (url.openConnection());
long completeFileSize = httpConnection.getContentLength();

java.io.BufferedInputStream in = new java.io.BufferedInputStream(httpConnection.getInputStream());
java.io.FileOutputStream fos = new java.io.FileOutputStream(
        "package.zip");
java.io.BufferedOutputStream bout = new BufferedOutputStream(
        fos, 1024);
byte[] data = new byte[1024];

long downloadedFileSize = 0;
int x = 0;
while ((x = in.read(data, 0, 1024)) >= 0) {
    downloadedFileSize += x;

共有1个答案

卓致远
2023-03-14

你能解释一下“读入”字节数组是什么意思吗?

当我们将数据读入字节数组时,我们的意思是我们将来自输入流的数据存储到数组中,以备以后使用。我们将数据读入字节数组,而不是char数组或int数组,因为它是二进制数据。它可能是文本、图片或视频。说到底,这些都是我们以字节存储的二进制数据。

还有,为什么“0”和“1024”也会传入?

OFF-开始存储字节的偏移量。

len-要读取的最大字节数。

因此0是读取操作开始存储字节的“偏移量”。1024是要读取的字节数。这些数字可以是任何合理的数字,只要您不试图读入数组末尾以外的位置。

 类似资料:
  • 为什么我们需要字典? 计算机最适合使用数字,而人类最适合使用姓名。我们创建了DNS以便记住主机名而不是IP地址。字典以相同的方式使用,因此我们可以记住AVP名称而不是类型编号。当FreeRADIUS解析请求或生成响应时,会查阅字典。 但是,字典与DNS不同,因为RADIUS客户端不知道FreeRADIUS使用的这些“友好”名称。永远不会在RADIUS客户端和RADIUS服务器之间交换AVP名称。

  • 然后用Gson lib将响应转换为我们需要的对象。 这来自Square/OKHTTP文档: 它的请求/响应API是用流畅的构建器和不变性设计的。它同时支持同步阻塞调用和带有回调的异步调用

  • 问题内容: 我正在尝试从文本文件读取文本。有一些特殊的字符,如å,ä和ö。当我制作一个字符串并打印出该字符串时,我得到了?从这些特殊字符。我正在使用以下代码: 谁能告诉我是什么问题。我希望strLine以文本文件形式显示和保存å,ä和ö。提前致谢。 问题答案: 问题可能不在于文件,而在于您尝试打​​印的控制台。我建议您按照以下步骤 确保您正在读取的文件以UTF-8编码。 确保要打印的控制台具有正确

  • 问题内容: 我有以下代码将页面附件带给用户: 问题是所有受支持的文件都可以正常工作(jpg,gif,png,pdf,doc等),但是.docx文件在下载时已损坏,需要通过Office进行修复才能打开。 起初我不知道问题是否出在解压缩包含.docx的zip文件,所以我没有保存输出文件,而是先保存了文件,然后成功打开了文件,所以我知道问题所在应该在回应写作中。 你知道会发生什么吗? 问题答案: 我也遇

  • 本文向大家介绍为什么我们要做三份 Webpack 配置文件,包括了为什么我们要做三份 Webpack 配置文件的使用技巧和注意事项,需要的朋友参考一下 在知乎上我们常常会看到有同学发问:BAT 等大型网站的前端工程是如何组织管理的?这的确是一个可以发散的很广的 Q&A,我想如果要我回答这个问题,不如先从 Webpack 配置说起。 时至今日,Webpack 已经成为前端工程必备的基础工具之一,不仅

  • 我可以通过带有链接的移动safari浏览器下载文件。但是当我把我的网站保存为主屏幕应用程序时,我不能下载(存折文件)。我得到了这个警告: 然后我检查了请求,我发现用户代理是不同的: