public void writeBytes(byte[] buffer, int srcOffset, int destOffset, int count) throws IOException { if (isDeactivated()) { throw new IOException("Can't write to deactivated memory file."); } if (srcOffset < 0 || srcOffset > buffer.length || count < 0 || count > buffer.length - srcOffset || destOffset < 0 || destOffset > mLength || count > mLength - destOffset) { throw new IndexOutOfBoundsException(); } if(Build.VERSION.SDK_INT < 21) { native_write_int(mFD, mAddressInt, buffer, srcOffset, destOffset, count, false); } else { native_write_long(mFD, mAddressLong, buffer, srcOffset, destOffset, count, false); } }