Java学习笔记之报错Exception in thread “main“ java.io.FileNotFoundException

阅读目录

0x00 概述

在 Java IO 流章节进行练习的时候,运行代码时候发现报错,说文件路径不正确。

 

0x01 解决

报错代码

package FileDemo2;

import java.io.File;
import java.io.IOException;

public class FileDemo2 {
public static void main(String[] args) throws IOException {
// 需求 1:在 C:\Users\119k\IdeaProjects\d17\FileDemo2\ 目录下创建一个文件 java.txt
File f1 = new File("C:\Users\119k\IdeaProjects\d17\FileDemo2\java.txt");
System.out.println(f1.createNewFile());
System.out.println(
"--------------");

    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 需求2:在C:\Users\119k\IdeaProjects\d17\FileDemo2\目录下创建一个目录</span>
    File f2 = <span style="color: rgba(0, 0, 255, 1)">new</span> File("C:\\Users\\119k\\IdeaProjects\\d17\\FileDemo2\\JavaSE\\"<span style="color: rgba(0, 0, 0, 1)">);
    System.out.println(f2.mkdir());
    System.out.println(</span>"--------------"<span style="color: rgba(0, 0, 0, 1)">);

    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 需求3:在C:\Users\119k\IdeaProjects\d17\FileDemo2\目录下创建多级目录\JavaSE\JavaEE\</span>
    File f3 = <span style="color: rgba(0, 0, 255, 1)">new</span> File("C:\\Users\\119k\\IdeaProjects\\d17\\FileDemo2\\JavaSE\\JavaEE\\"<span style="color: rgba(0, 0, 0, 1)">);
    System.out.println(f3.mkdirs());
    System.out.println(</span>"--------------"<span style="color: rgba(0, 0, 0, 1)">);

    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 需求4:在C:\Users\119k\IdeaProjects\d17\FileDemo2\目录下创建一个文件javaSE.txt</span>
    File f4 = <span style="color: rgba(0, 0, 255, 1)">new</span> File("C:\\Users\\119k\\IdeaProjects\\d17\\FileDemo2\\javaSE.txt"<span style="color: rgba(0, 0, 0, 1)">);
    System.out.println(f4.createNewFile());
    System.out.println(</span>"--------------"<span style="color: rgba(0, 0, 0, 1)">);
}

}

修正后的代码,注意红色部分,增加了\src

package FileDemo2;

import java.io.File;
import java.io.IOException;

public class FileDemo2 {
public static void main(String[] args) throws IOException {
// 需求 1:在 C:\Users\119k\IdeaProjects\d17\FileDemo2\ 目录下创建一个文件 java.txt
File f1 = new File("C:\Users\119k\IdeaProjects\d17\src\FileDemo2\java.txt");
System.out.println(f1.createNewFile());
System.out.println(
"--------------");

    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 需求2:在C:\Users\119k\IdeaProjects\d17\FileDemo2\目录下创建一个目录</span>
    File f2 = <span style="color: rgba(0, 0, 255, 1)">new</span> File("C:\\Users\\119k\\IdeaProjects\\d17<span style="color: rgba(255, 0, 0, 1)">\\src</span>\\FileDemo2\\JavaSE\\"<span style="color: rgba(0, 0, 0, 1)">);
    System.out.println(f2.mkdir());
    System.out.println(</span>"--------------"<span style="color: rgba(0, 0, 0, 1)">);

    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 需求3:在C:\Users\119k\IdeaProjects\d17\FileDemo2\目录下创建多级目录\JavaSE\JavaEE\</span>
    File f3 = <span style="color: rgba(0, 0, 255, 1)">new</span> File("C:\\Users\\119k\\IdeaProjects\\d17<span style="color: rgba(255, 0, 0, 1)">\\src</span>\\FileDemo2\\JavaSE\\JavaEE\\"<span style="color: rgba(0, 0, 0, 1)">);
    System.out.println(f3.mkdirs());
    System.out.println(</span>"--------------"<span style="color: rgba(0, 0, 0, 1)">);

    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 需求4:在C:\Users\119k\IdeaProjects\d17\FileDemo2\目录下创建一个文件javaSE.txt</span>
    File f4 = <span style="color: rgba(0, 0, 255, 1)">new</span> File("C:\\Users\\119k\\IdeaProjects\\d17<span style="color: rgba(255, 0, 0, 1)">\\src</span>\\FileDemo2\\javaSE.txt"<span style="color: rgba(0, 0, 0, 1)">);
    System.out.println(f4.createNewFile());
    System.out.println(</span>"--------------"<span style="color: rgba(0, 0, 0, 1)">);
}

}

需要在 IDE 内获取文件的绝对路径,此处使用 copy-absoulte path 发现文件路径内是多出了 \\src