在 Java 中获取系统块大小
2022-09-04 20:13:33
我正在尝试编写最快,最优化的文件保存方法。有没有办法在java中获取系统块大小?类似的东西或什么。System.getProperty("block.size")
我正在尝试编写最快,最优化的文件保存方法。有没有办法在java中获取系统块大小?类似的东西或什么。System.getProperty("block.size")
“最快最优化的方法”肯定是使用您可以负担得起的最大缓冲区进行写入;以确保其大小是2的幂(想到一兆字节);并确保写入操作本身是缓冲区对齐的:
new BufferedOutputStream(new FileOutputStream(file), 1024*1024);
只要您超过系统块大小(您将处于此大小),并保持与之对齐,这是由 保证的,这与它所得到的一样最佳。BufferedOutputStream
您还应该研究 ,注意您必须在循环中调用它,并且到目前为止的实际实现似乎不使用任何低级操作系统基元(与广告相反),就像您可以自己编写的循环一样。FileChannel.transferTo()