1. 本期竞争者有四位,分别是:
第一位:FileInputStream+FileOutputStream(BIO);
第二位:BufferedInputStream+BufferedOutputStream(BIO);
第三位:ByteBuffer+Channel(NIO);
第四位:MappedByteBuffer+Channel(NIO);
2. 分别实现文件拷贝操作:
第一位:FileInputStream+FileOutputStream:
public void BIO_one() throws IOException {
FileInputStream fin = new FileInputStream(new File(source));
FileOutputStream fout = new FileOutputStream(new File(dest+"BIO_one.txt"));
byte[] buf = new byte[1024];
while (fin.read(buf) != -1){
fout.write(buf);
}
fin.close();
fout.close();
}
第二位:BufferedInputStream+BufferedOutputStream:

本文通过对比FileInputStream+FileOutputStream、BufferedInputStream+BufferedOutputStream(BIO)以及ByteBuffer+Channel、MappedByteBuffer+Channel(NIO)四种方式实现文件拷贝,发现NIO在效率上优于BIO,且BufferedInputStream表现良好。在BIO中,由于read返回-1时未读满byte数组导致额外写入,而NIO的clear操作避免了此问题。
最低0.47元/天 解锁文章
322

被折叠的 条评论
为什么被折叠?



