This week's book giveaway is in the Mac OS forum. We're giving away four copies of a choice of "Take Control of Upgrading to Yosemite" or "Take Control of Automating Your Mac" and have Joe Kissell on-line! See this thread for details.
Remember, a java.io.File doesn't represent a "file", really; it represents a path to a file. When you call methods like renameTo() or size(), they look onto the file system at the corresponding path, and they won't work unless the file exists. But you can create a java.io.File to represent completely nonexistent paths, and that's perfectly OK.