在Windows上并行写入Java
当同时在同一文件上打开两个(或更多)FileOutputStream时会发生什么?
Java API说:
我猜猜Windows不是这样的一个平台,因为我有两个线程读取一些大文件(每一个不同的文件),然后写入同一个输出文件。没有异常抛出,文件被创建,似乎包含两个输入文件的块。 侧面问题: >对于Unix来说也是如此吗?
当一个文件有另一个作者时,就没有一种可靠的,跨平台的被动通知方式,即如果一个文件已经打开写入,就会产生异常。然而,有几种技术帮助您积极地检查这一点。
如果多个进程(可以是Java和非Java的混合)可能正在使用该文件,请使用 如果单个Java进程正在使用该文件,则可以使用Java内置的并发工具来安全地执行此操作。所有线程都需要一个可见的地图,将每个文件名与其相应的锁定实例相关联。可以使用File对象或canonical paths到文件轻松调整a related question的答案。该锁对象可能是一个FileOutputStream,一些流包裹,或一个 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |