文件写入优化
现状
系统中需要大量的写入大文件,文件的大小从1.x Mb,到20Mb不等,但是每个文件夹下都有几十到几百个文件。原来采用的是Files.write的方式,将文件写入系统。但是在操作大量数据的时候感觉比较慢。
方案
尝试使用FileChannel来优化写入的内容
原来的代码
Files.write(filePath,bytes);
新的代码
try(FileOutputStream fos = new FileOutputStream(path.toFile())){
FileChannel channel = fos.getChannel();
ByteBuffer buffer = ByteBuffer.wrap(bytes);
channel.write(buffer);
}
结果
原来的写入,96帧 14.7M的文件,耗时117秒
新的写入方式,耗时39秒。
效果提升比较明显。