Что происходит, когда вы одновременно открываете два (или более) файла FileOutputStreams в одном файле?
API Java говорит следующее:
Некоторые платформы, в частности, позволяют открывать файл для записи только одним FileOutputStream (или другим объектом для записи файлов) за раз.
Я предполагаю, что Windows не такая платформа, потому что у меня есть два потока, которые читают большой файл (каждый другой), а затем записывают его в тот же выходной файл. Исключение не генерируется, файл создается и, как представляется, содержит куски из обоих входных файлов.
Боковые вопросы:
- Это тоже верно для Unix?
- И поскольку я хочу, чтобы поведение было одинаковым (на самом деле я хочу, чтобы один поток правильно писал, а другой - о конфликте), как я могу определить, что файл уже открыт для записи?