我无法理解为什么我的代码拒绝将我的txt文件的文件扩展名更改为java。
这是我的代码:
public static void main(String[] arg) {
File file = new File("file.txt"); //File I want to change to .java
File file2 = new File("file.java");
boolean success = file.renameTo(file2); //boolean to check if successful
if (success == true)
{
System.out.println("file extension change successful");
}else
{
System.out.println("File extension change failed");
}
}// main
它始终打印"文件扩展名失败"每次和我老实说都不明白为什么。我开始怀疑它可能是我计算机上的权限。我使用的编译器是Eclipse。
FIXED:
问题的原因: 我在项目文件夹中的包文件夹中放置了我想要更改的文件 file.txt 。的 C:\用户\宏基\工作空间\ MyProjectName \ SRC \ MyPackageName 即可。因此,系统无法找到该文件。
解决方案: 我只是将文件 file.txt 移动到主项目文件夹中; C:\ Users \ Acer \ workspace \ MyProjectName ,这解决了问题。当我运行我的程序时,它返回
文件扩展名更改成功
谢谢大家的帮助。对此,我真的非常感激。
答案 0 :(得分:1)
经典的Java File API在很多方面都非常有限。在这种情况下,您无法获得有关移动失败原因的反馈。
如果您使用的是Java 7,我的建议是切换到使用该版本中添加的nio文件功能。您不仅可以使用更新,更强大的API,而且还应该更好地了解您的副本失败的原因。这是您发布的代码的等效代码。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class MoveFile {
public static void main(String[] arg) {
Path file = Paths.get("file.txt"); //File I want to change to .java
Path file2 = Paths.get("file.java");
try {
Files.move(file, file2);
System.out.println("file extension change successful");
} catch (IOException e) {
System.out.println("File extension change failed: " + e.getMessage());
e.printStackTrace();
}
}
}
为了提高认知度,Oracle提供了一个很好的reference page,用于将旧文件代码转换为nio代码。
答案 1 :(得分:1)
源文件即 file.txt 应该存在于上述路径中(在您的情况下,它应该在eclipse项目文件夹中)并且没有目标文件名的文件,即文件。 java 应存在于上述路径中。 执行代码后,文件扩展名更改成功, file.txt 将消失,其内容将转移到 file.java