You answered your own question. According to the API, isFile() returns true if and only if the file denoted by this abstract pathname exists and is a normal file. Since in this case the file does not exist, it returns false.
All code in my posts, unless a source is explicitly mentioned, is my own.
....oops... Thanks Punit.
I thought that isFile() only checks whether it is a file/not. But it turned out that it also checks whether that particular file is present in the system/current directory.