public static void copyFile(File sourceFile, File targetFile,Boolean preserveFileDate)
throws IOException {
<!-- ........-->
// 缓冲数组
byte[] b = new byte[4096];
int len;
while ((len = inBuff.read(b)) != -1) {
outBuff.write(b, 0, len);
}
<!-- ........-->
}
拿上面的代码为例,一直以来, 看别人用java写文件都是用4096字节的缓冲,之一在想为什么是4096呢, 网上查了一下资料,操作系统读写文件是以簇为原子操作的, 一般windows的NTFS系统的簇大小是4096,所以我想原因应该是既然底层IO操作一次是4096个字节那么缓冲多了也没意义,不会减少底层IO操作的次数。
这个想法有待考证。。。。。。