Размер буфера равен размеру, который вы передаете. Он не будет увеличиваться или уменьшаться.
Javadoc говорит:
Отображает область файла этого канала непосредственно в память.
...
размер - размер области для отображения; должен быть неотрицательным и не более Integer.MAX_VALUE
EDIT:
В зависимости от того, что вы подразумеваете под «обновляется новыми данными», ответ - да.
Вид файла, предоставленного экземпляром этого класса , гарантированно будет соответствовать другим представлениям того же файла, предоставленным другими экземплярами в той же программе. Представление, предоставляемое экземпляром этого класса, может, однако, соответствовать или не соответствовать представлениям других одновременно работающих программ из-за кэширования, выполняемого базовой операционной системой, и задержек, вызванных протоколами сетевой файловой системы. Это верно независимо от языка, на котором написаны эти другие программы, и от того, работают ли они на том же компьютере или на другом компьютере. Точная природа любых таких несоответствий зависит от системы и поэтому не указана.
Итак, другие системы могут выполнять кэширование, но когда эти кэши сброшены или обновлены иным образом, они согласятся с мнением, представленным FileChannel
.
Вы также можете использовать явные вызовы метода position
и других методов, чтобы изменить то, что представлено представлением.
Изменение позиции канала, явным образом, либо путем чтения или записи байтов, изменит позицию файла исходного объекта, и наоборот. Изменение длины файла через файловый канал изменит длину, видимую через исходный объект, и наоборот. Изменение содержимого файла путем записи байтов изменит содержимое, видимое исходным объектом, и наоборот.