This is still system dependent as to what it actually does under the hood. If the system supports it a rename is done, if not a copy takes place, in which case the operation is no longer atomic. There didn't seem to be a consistent way to accomplish this in Java 6, and both common.io.FileUtils.move() and guava Files.move() depend on the native File.renameTo() method internally.
Anyone know a better way to do this until we can utilize the nio enhancements in Java 7?

In any event this should solve the problem on *nix systems.