Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Java
Expertise: Beginner
May 5, 2000



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Synchronization Between File Writes and Reads

How do I determine if a Unix process has stopped writing to a file, so that my Java program can start reading it?

If you are not able to modify the source code for the Unix program, you may well be out of luck. If you can modify the source code, then you have a few options.

The most straightforward is to use interprocess communication to notify the Java program that it is ready to start reading the file. You can do this using a TCP socket, by creating a named pipe that the Java program reads for notification, or by just creating a temporary file to signal the go ahead.

Another alternative is to use mandatory file locking, if available, and make the Unix process lock the file before writing and unlock it after it is done. This is the best solution because it doesn't require any modifications to your Java program. With mandatory locking, the Java program will block if it tries to read the file while it is still locked. If mandatory locking is not available to you, you can also write some native code to enable cooperative file locking from your Java program.

DevX Pro
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date