views:

41

answers:

2

Suppose I do the following in java for a process that stays open:

import java.io.File;
import java.util.Date;
public class LogHolder {
    public static void main(String[] args) {
        File file1 = new File("myLogFile.log");        
        while (true) {
            System.out.println("Running " + new Date());
        }
    }
}

Have I locked this file in a way that other windows processes can't write to the log file?

+1  A: 

This might help you : http://java.sun.com/j2se/1.4.2/docs/api/java/nio/channels/FileLock.html

daedlus
He's not really asking about Java semantics here but Windows semantics.
Esko
A: 

No, you haven't locked the file. Here's how the Java documentation summarizes the purpose of java.io.File:

An abstract representation of file and directory pathnames

(In other words, new File() doesn't even open the file.)

You can find the rest here: http://java.sun.com/javase/6/docs/api/java/io/File.html

jdigital
*"... doesn't even open the file"*. And doesn't even look to see if the file or its parent directories exist!
Stephen C