项目目录如下:
test1.class中读取test.txt
import java.io.*;
import java.util.Scanner; public class Test1 { public static void main(String[] args) throws IOException {
Scanner in=new Scanner(System.in);
// String path=this.getClass().getClassLoader().getResource("/");
System.out.println(System.getProperty("user.dir")); // 注意,路径应为文件在工程中的相对路径
File f=new File("src/test.txt"); System.out.println(".......");
System.out.println(f.getPath());
System.out.println(f.getAbsolutePath());
System.out.println(f.getCanonicalPath());
BufferedReader reader=new BufferedReader(new FileReader(f));
String temp=null;
int line=1;
while((temp=reader.readLine())!=null){
System.out.println("line"+line+":"+temp);
line++;
} }
}
结果如下:
总结读取文件:
直接
// 注意,路径应为文件在工程中的相对路径
File f=new File("src/test.txt");
总结获取当前路径:
this.getClass().getClassLoader().getResource() 或 this.getClass().getClassLoader().getResources()
需要非静态函数中使用(main函数中不能使用)
System.getProperty("user.dir")
获取的是工程的根目录
f.getPath()
获取的是创建file对象时构造参数里填的值
f.getCanonicalPath()
获取的是文件绝对路径
f.getAbsolutePath()
获取的也是文件的绝对路径,但是不会解析.和..
参考:
https://www.cnblogs.com/franson-2016/p/5728280.html
https://www.cnblogs.com/xuyatao/p/6610986.html