【问题标题】:8192 bytes when creating file创建文件时 8192 字节
【发布时间】:2010-11-09 20:17:59
【问题描述】:

在我的 Java 代码中,我有一个函数可以在 http 请求中从客户端获取文件并将其转换为文件。我有这条线:

byte[] buffer = new byte[8192];

8192 字节 (8 kb) 在这里是什么意思?

This is one of the responses that I got,并希望确保我理解该代码。

【问题讨论】:

  • 这意味着您正在创建一个缓冲区来保存大约 8.2 kb 的数据...
  • 请编辑您的问题以引用stackoverflow.com/questions/1111130/basic-file-upload-in-gwt/…的代码源
  • @Ed Swangren:8.2?你是在哪里拿到的?看起来正好是 8.0 kb。 1024 * 8.
  • Der,对不起,你的权利。我不是在这里制造硬盘:),除以 10 是错误的。我只是说代码本身的意义非常明显。
  • 你做硬盘,不应该是12kb吗?

标签: java bytearray


【解决方案1】:

它使用缓冲区一次读取和写入 8kB 块。这个数字相当随意,但出于性能原因,在写入文件时使用 512 字节的倍数是有意义的,最好是磁盘簇大小的倍数。 8kB 对于大多数用途来说是一个合理的缓冲区大小。

【讨论】:

    【解决方案2】:

    这是字节数组的大小,这意味着您的缓冲区一次可容纳 8192 个字节。

    【讨论】:

      【解决方案3】:

      如果我不得不猜测,那就是您用于读取文件的空间量。如果没有其余的代码,我无法判断它是试图全部读取并将其塞进 8k 中,还是一次读取 8k,然后将其转储到文件中。

      【讨论】:

      • 检查这个答案:stackoverflow.com/questions/1111130/basic-file-upload-in-gwt/…这是我有那个号码的地方
      • 然后它一次读取 8k 并将其发送到文件,然后再抓取下一个 8k 块。理由是 8k 是在旋转调用函数和到达文件末尾时浪费空间之间的合理权衡,因为它相当接近许多文件系统上的块大小。
      • 当您向我们展示除了数组声明/定义之外的任何源代码时,我们如何回答这个问题?
      【解决方案4】:

      8192 是通过网络发送的包的最大大小。 字符缓冲区[8192]; /* 单个数据包通常不大于 8192 字节 */ 512 字节太小了。

      【讨论】:

      猜你喜欢
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-10
      • 1970-01-01
      • 2015-03-16
      • 2018-08-24
      • 1970-01-01
      相关资源
      最近更新 更多