Запрос состояния java.nio.Buffer для чтения / записи (перевернутый)

1

Кажется, что нет способа запросить буфер, находится ли он в состоянии чтения или записи.

Получение состояния было бы полезно в модульных тестах, по крайней мере.

Каков наилучший способ получить государство?

  • 0
    Когда вы говорите «состояние», вы спрашиваете, находится ли буфер в данный момент в режиме чтения / записи, или, как отвечает ответ TAsk, - какие возможности у буфера?
  • 1
    Кажется, что все это сбивает с толку. Если у вас есть метод flip (), вы должны переключаться между двумя состояниями ... это здравый смысл .... в противном случае у него должно быть другое имя (reposition () и т. Д.)
Теги:
nio

2 ответа

-2
Лучший ответ

В Buffer нет "состояния чтения" или "состояния записи". Если буфер поддерживает его, его можно читать и записывать одновременно.

Метод flip() просто: "Предел установлен на текущую позицию, а затем позиция установлена на ноль. Если метка определена, она отбрасывается".

Здесь нет внутреннего флип-состояния. Если у вас есть подготовленный буфер, содержащий тысячу байт, вы можете прочитать байт, а затем написать байт, который перезапишет второй...

  • 0
    Так что же тогда представляет собой flip() ?
  • 0
    Похоже, мое замешательство было глубже. Кажется, что нигде нет скрытого «бита» режима чтения / записи. Буфер всегда готов к чтению и записи в зависимости от того, поддерживает ли их реализация. По крайней мере, комментарий к этому сообщению в блоге указывает на этот путь java.dzone.com/news/java-nio-question-about-buffer . ОТО, этот хороший урок, кажется, думает, что действительно есть 2 режима: tutorials.jenkov.com/java-nio/buffers.html
Показать ещё 5 комментариев
1

Каков наилучший способ получить государство?

Нет. Самый простой способ управлять Buffers - держать их всегда готовыми к чтению (= поместить) и flip() их, когда вы хотите написать (= get), помните, чтобы потом compact() или clear() чтобы они возвращались обратно состояние чтения.

  • 0
    Грустно и довольно глупо иметь такое ясное действие (щелчок), но не иметь ясного состояния. Почему мне нужно найти простой ответ, выполнив вычисления с ограничением и положением?
  • 0
    @Alex Еще глупее, flip () необратим. Очень плохой выбор имени. Идея состоит в том, чтобы использовать состояние вашей программы, чтобы узнать состояние объекта buffer.m или держать их в состоянии чтения, за исключением кратковременных действий, согласно моему ответу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню