В названии вопроса указан метод, который используется в решении к этой задаче. Почему мы не могли просто использовать raf.write(readBytes)? Мы же здесь записываем байты до того момента, пока не забьется полностью буфер, или я не прав? По крайней мере, так происходит с методом read(), когда мы сначала считываем в буфер значения, а потом уже можем работать с этим буфером.