The File class is "An abstract representation of file and directory pathnames." (Java API ref). Just because you have an an abstract representation of a file name, that doesn't mean you necessarily have an actual file on disk. The actual file will appear when you open some kind of output stream to the File and write something.
Alternatively you can use the afore-mentioned createNewFile() to create an actual empty file on disk (createTempFile() is different, it's a static factory method).