读取文件使用流的方式在基本的场合都不会发生错误!
以下是读取文件的几种方式:
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方式获取文件在不同过的场合会有不同的路径,很容易报错
//推荐使用流的方式来获取文件
//“” 中填写根目录下的文件名 ,返回的是流的形式 InputStream
IndexAction.class.getClassLoader().getResourceAsStream("");
// 获取根目录下的text.txt 文件的流 (推荐)
IndexAction.class.getResourceAsStream("/text.txt");
}
若已url形式来获取文件,在打成jar包后路径会发生错误!