要回答你的直接问题:(1)文件系统倾向于使用2的幂,所以你想要做同样的事情. (2)工作缓冲区越大,误差小的影响就越小.

如你所说,如果你分配4100并且实际的块大小是4096,你需要两次读取来填充缓冲区.相反,如果你有一个1,000,000字节的缓冲区,那么一个块高或低并不重要(因为它需要245个4096字节的块来填充该缓冲区).此外,较大的缓冲区意味着OS具有更好的订购读取的机会.

也就是说,我不会使用NIO.相反,我会使用一个简单的BufferedInputStream,我的read()可能有1k缓冲区.

NIO的主要好处是将数据保留在Java堆之外.例如,如果您正在读取和写入文件,则使用InputStream意味着操作系统将数据读入JVM管理的缓冲区,JVM将其复制到堆内缓冲区,然后再将其复制到堆外缓冲区,然后操作系统读取堆外缓冲区以写入实际的磁盘块(通常添加自己的缓冲区).在这种情况下,NIO将消除该本机堆副本.

但是,要计算哈希值,您需要拥有Java堆中的数据和Mac SPI will move it there.因此,您无法获得NBI保持数据堆外的好处,而IMO“旧IO”更容易来写.

只是不要忘记InputStream.read()不能保证读取你要求的所有字节.

java 设置 缓冲区大小_java – 确定适当的缓冲区大小相关推荐

  1. java 设置颜色代码_java怎么设置颜色

    java设置颜色的方法:首先Windows图标键加R打开运行,输入mspaint,回车打开画图软件:然后打开编辑颜色,并选择需要的颜色:最后对应的填进代码里即可得到所需颜色. [相关学习推荐:java ...

  2. java设置过期时间_java设置session过期时间的实现方法

    本文实例讲述了java设置session过期时间的实现方法,分享给大家供大家参考.具体实现方法如下: 1.Timeout in the deployment descriptor (web.xml) ...

  3. java 设置页面宽度_java – PDFBox设置A5页面大小

    开始玩 PDFBox PDDocument document = new PDDocument(); PDPage page = new PDPage(); document.addPage( pag ...

  4. java 检查bytebuf长度_Java学习笔记16-Netty缓冲区ByteBuf详解

    Java学习笔记16-Netty缓冲区ByteBuf详解 Netty自己的ByteBuf ByteBuf是为解决ByteBuffer的问题和满足网络应用程序开发人员的日常需求而设计的. JDK Byt ...

  5. JAVA设置按钮无效_JAVA设置的按钮监听没有反应

    展开全部 你还没给按钮添加监听器.62616964757a686964616fe59b9ee7ad9431333332643337 an1 = new JButton("确定"); ...

  6. java 获取组件大小_java - 如何初始化取决于组件大小的图像抓取? - 堆栈内存溢出...

    如果我正确理解问题,那么您的方法会有些落后. 与其让ImageNavigator告诉ZoomedImage绘制哪个子图像,不如让ZoomedImage在绘制时询问ImageNavigator(通过重写 ...

  7. java flowlayout 大小_java – 调整FlowLayout面板的大小

    所以这是你的代码用GridBagLayout改变BorderLayout. GridBagLayout的核心思想是,您将拥有一个包含多个行和列(不同大小)的网格,您可以在每个单元格中放置组件.它的巧妙 ...

  8. java 设置pdf 编码格式_Java如何设置PDF文档背景色详解

    前言 一般生成的PDF文档默认的文档底色为白色,我们可以通过一定方法来更改文档的背景色,以达到文档美化以及保护双眼的作用. 以下内容提供了Java编程来设置PDF背景色的方法.包括: 设置纯色背景 设 ...

  9. java的基础类型和字节大小_java的基础类型和字节大小

    学习c语言的时候,这些个东西起码还是很明确的,因为上课的时候,老师经常问,现在时间久了,见的语言多了,也就有点乱了,也没怎么在意过. (武藏)     既然你诚心诚意的发问了, (小次郎) 我们就大发 ...

最新文章

  1. 获取返回值作为变量_解决多线程间共享变量线程安全问题的大杀器——ThreadLocal...
  2. iphone录屏怎么录声音_ev录屏怎么录制声音 ev录屏声音设置教程
  3. 【Android】startActivityForResult()与onActivityResult()与setResult()参数分析
  4. 如何获取微信API的Access Token
  5. python函数命名空间_python (函数命名空间和作用域)
  6. JSK-A1144 代码填空:阶梯三角形【水题】
  7. antd table动态表头_react动态配置antd table的columns
  8. 7.微服务设计 --- 测试
  9. DPDK Release 21.02
  10. 伟创ac80b变频器故障代码_安川变频器故障代码和安川变频器报警详解
  11. 《别做正常的傻瓜》1——结果偏见
  12. Hadoop1.0,2.0,3.0区别
  13. Vulkan Cookbook 第七章 1 将GLSL着色器转换为SPIR-V组件
  14. 网络存储-详解NAS网络存储
  15. Layui table内写done回调事件
  16. 从前装量产数据看“软硬分离”与“市场博弈”
  17. STM32硬件IIC的BUG问题
  18. 英伟达面向开发者群体建立深度学习课程
  19. 关于我重装ubuntu系统后所做的那些事
  20. 51nod3176 挂饰

热门文章

  1. 前端架构 101(六):整洁(Clean Architecture)架构是归宿
  2. 查看oracle配置信息,查看 Oracle Solaris 系统配置信息
  3. 曲线救国--为Chrome安装Edge浏览器插件
  4. 全球免费软件推荐(国外篇)
  5. 仿云音乐黑胶唱片功能
  6. 细说JVM系列:JVM存在的目的和意义是什么?
  7. 09-赵志勇机器学习-k-means
  8. 【广州芯享家】服务器维护过程中,你需要了解的5个小常识
  9. 发现一个安卓万能脱壳方法
  10. buck降压斩波电路