java.io.File的.createNewFile()不会创建文件

时间:2018-12-16 13:13:31

标签: file io

class FileClassOne {
public static void main(String args[]) {
    File myDir = new File(File.separator);
    System.out.println("myDir.getAbsolutePath() = " + myDir.getAbsolutePath());
    System.out.println("myDir.isDirectory() = " + myDir.isDirectory());
    System.out.println("myDir.isFile() = " + myDir.isFile());
    System.out.println();

    myDir = new File(File.separator+"Java"+File.separator+"FilePartOne");
    System.out.println("myDir.getAbsolutePath() = " + myDir.getAbsolutePath());
    System.out.println("myDir.isDirectory() = " + myDir.isDirectory());
    System.out.println("myDir.isFile() = " + myDir.isFile());
    System.out.println();

    File myFile = new File(myDir, "Temp.txt");
    System.out.println("myFile.getAbsolutePath() = " + myFile.getAbsolutePath());
    System.out.println("myFile.isDirectory() = " + myFile.isDirectory());
    System.out.println("myFile.isFile() = " + myFile.isFile());
    System.out.println("myFile.exists() = " + myFile.exists());
    try { 
        myFile.createNewFile(); 
    } catch (IOException e) {
        System.out.println(e.getMessage()); 
    }

输出:
myDir.getAbsolutePath()= C:\
myDir.isDirectory()= true
myDir.isFile()= false

myDir.getAbsolutePath()= C:\ Java \ FilePartOne
myDir.isDirectory()=假
myDir.isFile()= false

myFile.getAbsolutePath()= C:\ Java \ FilePartOne \ Temp.txt
myFile.isDirectory()=假
myFile.isFile()= false
myFile.exists()=假
系统找不到指定的路径

此代码来自视频中的在线教程,并且已逐字复制。 IDE是日食。

1 个答案:

答案 0 :(得分:0)

我想说这可能是因为路径“ C:\ Java \ FilePartOne”中缺少目录。

声明:

myFile.createNewFile(); 

将尝试在给定路径上创建文件,而不创建任何丢失的目录。因此,如果在执行该语句时缺少目录,则会出现错误“系统找不到指定的路径”。

解决此问题的快速方法是自己创建丢失的文件夹,或者在myFile.createNewFile();之前添加以下代码。

myFile.getParentFile().mkdirs();