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