使用MappedByteBuffer可以跟方便快捷的修改文件。
/** * 可以让文件直接在堆外内存修改,不用再拷贝一次再修改 */ @Test public void MappedByteBufferTest() throws IOException { RandomAccessFile randomAccessFile = new RandomAccessFile("e:\\111.txt", "rw"); FileChannel fisChannel = randomAccessFile.getChannel(); // 读写模式,从第0个下标开始,长度不能超过5个 MappedByteBuffer mapBuf = fisChannel.map(FileChannel.MapMode.READ_WRITE, 0, 5); mapBuf.put(0, (byte)‘!‘); // mapBuf.put(5, (byte)‘Z‘);// 超过长度限制会抛出java.lang.IndexOutOfBoundsException错误 randomAccessFile.close(); }
原文:https://www.cnblogs.com/pastjx/p/14425425.html