此程序不会在我想要的目录中创建文件。但是当我只是在没有指定任何路径的情况下创建文件时,它可以正常工作。
import java.io.File;
import java.util.Scanner;
public class FileCreator {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String inputString = input.nextLine();
File newFile = new File("C:\\Users\\" + inputString + ".txt");
if(newFile.exists() == false) {
try {
newFile.createNewFile();
System.out.println(inputString + ".txt hasbeen created.");
}
catch (Exception e) {
System.err.println("Error");
}
}
else {
System.out.println("File Already Exists");
}
}
}
答案 0 :(得分:1)
我猜你可能不知道异常可能是什么,这是一个错误,你想要避免错误,但在这种情况下,错误可能实际上有所帮助,如果你没有扔掉它拥有的所有信息甚至可能已经解决了。
catch (Exception e) {
System.err.println("Error");
}
编译器可能实际上试图告诉你错误,但是你扔掉了所有的信息。当出现错误时应该使用异常处理,并且作为非错误的有效选项,并且您不希望软件因此而停止。在您的情况下,e.printStackTrace()
可能会有所帮助,编译器会以这种方式实际打印出错误的内容。
答案 1 :(得分:0)
您似乎正在尝试在系统C:\Users
目录中创建文件。尝试为源文件(在您自己的主目录下)创建自己的目录,而不是将它们放在系统路径中。
您可能没有权限写入该目录。
答案 2 :(得分:0)
尝试使用printStackTrace方法:
catch (Exception e) {
e.printStackTrace();
}
可能是java.io.IOException:访问被拒绝。
尝试使用其他路径位置或创建自己的目录:
File newFile = new File("C:\\temp\\" + inputString + ".txt");