Для Java 1.6 и ниже я считаю, что самым безопасным и чистым API для этого является Files.move Guava.
Пример:
File newFile = new File(oldFile.getParent(), "new-file-name.txt");
Files.move(oldFile.toPath(), newFile.toPath());
Первая строка гарантирует, что местоположение нового файла будет одним и тем же каталогом, то есть родительским каталогом старого файла.
EDIT: я написал это, прежде чем я начал использовать Java 7, в котором был введен очень похожий подход. Поэтому, если вы используете Java 7+, вы должны увидеть и откликнуться на ответ kr37.