FileInputStream и FileOutputStream в один и тот же файл: гарантированно ли чтение () видеть все записи (), которые «происходили раньше»?

Я использую файл в качестве кэша для больших данных. Один поток пишет в него последовательно, другой поток читает его последовательно.

Могу ли я быть уверен, что все данные, которые были записаны (write()в одну ветку можноread() из другого потока, при условии правильногослучается, перед тем» отношения с точки зрения модели памяти Java? Это поведение задокументировано?

В моем JDK,FileOutputStream не переопределяетflush(), а такжеOutputStream.flush() пустой. Тот'почему ямне интересно ...

Рассматриваемые потоки принадлежат исключительно классу, который я полностью контролирую. Каждый поток гарантированно будет доступен только одному потоку. Мои тесты показывают, что это работает, как и ожидалось, но яМне все еще интересно, гарантировано ли это и задокументировано.

Смотрите такжеэто связанное обсуждение.

Ответы на вопрос(4)

Ваш ответ на вопрос