缓冲写入器VS内存映射IO用于写入包含大量数据的CSV文件

时间:2013-08-06 07:09:06

标签: java file io

我已经浏览了一个url,其中首选写入大量数据,使用缓冲区编写器,但我只想知道它相对于内存映射io的优势,因为主要关注的是使这个过程更快可能,但在jdk 1.5 memmory映射io也更快,所以为什么它不是首选

2 个答案:

答案 0 :(得分:1)

我在Chronicle中使用内存映射文件,但我会说

内存映射文件使用esp更难以处理文本,因为您需要随机访问并且文本具有不同的长度字符。普通IO最简单,通常比硬件快得多,所以除非您有PCI SSD卡,否则您不会注意到较大文件的差异。

简而言之,如果您的写入速度很慢,请检查您要写入的硬盘驱动器,因为您在软件中没有太多可以做的更快。 (除了使用压缩)

答案 1 :(得分:1)

内存映射I / O是:

  1. 阅读时比java.io快20%
  2. 在编写未知长度的文件时不可用,因为您在映射时指定了长度。