RT.想测试下MappedByteBuffer的put方法会不会写入磁盘,如下:
FileChannel filechannel=new RandomAccessFile("mydata","rw").getChannel();
MappedByteBuffer mappedbytebuffer=filechannel.map(FileChannel.MapMode.READ_WRITE, 0, 10);
mappedbytebuffer.put((byte)'a');
mappedbytebuffer.put((byte)'b');
mappedbytebuffer.put((byte)'c');
在每次put的时候加个断点,同时看磁盘上的数据,确实是每次都发生了变化.
和预想的不一样,本来以为put不会立刻改变磁盘数据(pagecache), 要用force才能刷到磁盘.
这是啥原因?
青春有我
相关分类