Question:
How can a unique filename be constructed that guarantees that it will be unique across processes?
Answer:
There is unfortunately no Java 1.1 analog to the POSIX tmpnam()
C function, which generates a unique filename, or tmpfile()
, which creates a new file with a uniquefilename. But Java 1.2 has added this functionality by adding the createTempFile
static method to thejava.io.File
class. This method will create a new file with a unique name based upon a base pattern. During any given run of an application, createTempFile
will never create the same filename twice. If for some reason it cannot create a file that didnot previously exist, createTempFile
will throw an IOException
. I cannot conceive of a bulletproof way of implementing this functionality in Java 1.1 using 100% Java code. In fact, Java 1.2’s createTempFile
relies on native code to implement the method.