在 Windows 上的 Java 中并发文件写入
在同一文件上同时打开两个(或多个)FileOutputStreams 时,会发生什么情况?
Java API是这样说的:
特别是某些平台,一次只允许一个 FileOutputStream(或其他文件写入对象)打开文件以进行写入。
我猜Windows不是这样的平台,因为我有两个线程读取一些大文件(每个线程是不同的),然后将其写入相同的输出文件。不会引发异常,文件已创建,并且似乎包含来自两个输入文件的块。
题外问题:
- Unix也是如此吗?
- 由于我希望行为是相同的(实际上我希望一个线程正确写入,另一个线程被警告冲突),我如何确定文件已经打开进行写入?