Java不在指定目录中创建文件

时间:2015-12-30 22:24:33

标签: java file io

此程序不会在我想要的目录中创建文件。但是当我只是在没有指定任何路径的情况下创建文件时,它可以正常工作。

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");
        }
    }
}

3 个答案:

答案 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");