项目目录如下:
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