之前不知道,以为在web工程中创建文件,文件的默认路径是相当于class路径的,测试之后发现,在web工程中根本就找不到我创建的文件,而是到了其他路径去,怎么回事?
原来这是java读取文件机制的问题,如果直接这样写路径new File("a.***"),那么java程序员就会从程序启动的地方去创建这个文件(JavaWeb项目中也是如此),那么web应用是从有tomcat来执行的,tomcat这个程序是从哪里启动文件是startup.bat,位置是tomcat/bin。
我们前面说了,java项目的file路径是相对于启动位置的,从程序启动的地方创建文件,那么文件路径不会是JDK中bin路径吧?不是这样的,看实验结果:
public class CreateFile {
public static void main(String args[]) {
File file = new File("location.txt");
System.out.println(file.getAbsolutePath());
}
}
实验结果表明,默认的文件路径是eclipse项目路径,因为我们的项目从main函数启动,而main函数在eclipse项目中,同理web项目的启动入口main函数在tomcat的bin中的某个jar包。而jdk提供的仅是java运行程序不是真正的程序启动路径。