读取文件使用流的方式在基本的场合都不会发生错误!
以下是读取文件的几种方式:
public static void main(String[] args) {//获取classpath路径,就是根目录 /D:/Program/idea/DayIndicators/target/classes/System.out.println(IndexAction.class.getResource("/").getPath());//得到的是IndexAction 类所在的包路径System.out.println(IndexAction.class.getResource("").getPath());//会报错,已经在根目录System.out.println(IndexAction.class.getClassLoader().getResource("/").getPath());//获取classpath路径,就是根目录 /D:/Program/idea/DayIndicators/target/classes/System.out.println(IndexAction.class.getClassLoader().getResource("").getPath());//一般来说已url方式获取文件在不同过的场合会有不同的路径,很容易报错//推荐使用流的方式来获取文件//“” 中填写根目录下的文件名 ,返回的是流的形式 InputStreamIndexAction.class.getClassLoader().getResourceAsStream("");// 获取根目录下的text.txt 文件的流 (推荐)IndexAction.class.getResourceAsStream("/text.txt");}
若已url形式来获取文件,在打成jar包后路径会发生错误!