Java——项目中文件路径名不同写法

绝对路径

在读取文件路径时,万能的方法就是使用绝对路径,但是不建议使用,因为不同开发者所以使用的项目和资源路径必定不同,代码的移植性很低。

在这里插入图片描述

@Test
  public void test1() throws IOException{
    FileReader fr = new FileReader("E:\\IDEA\\workspace\\project01\\JavaSE\\src\\source\\jdbc.txt");  
    BufferedReader br = new BufferedReader(fr);
    String str = br.readLine();
    System.out.println(str);//user=jdbc
    br.close();
    fr.close();
  }

文件路径(类路径)

说明:
类路径是默认从项目的根路径写起的,根路径就是src同级的路径,(src全称source)
在这里插入图片描述

@Test
  public void test2() throws IOException{
  //extra.txt文件与src同级
    FileReader fr = new FileReader("extra.txt");
    BufferedReader br = new BufferedReader(fr);
    String str = br.readLine();
    System.out.println(str);//user=extra
    br.close();
    fr.close();
  }
@Test
  public void test2() throws IOException{
    FileReader fr = new FileReader("src/demo.txt");
    BufferedReader br = new BufferedReader(fr);
    String str = br.readLine();
    System.out.println(str);//user=demo
    br.close();
    fr.close();
  }

补:
注意filename和pathname,虽然都是传入string字符串,但是形参为pathname时必须要将路径写完整,包括module名,filename直接从src开始写起:
在这里插入图片描述

通过类加载器获取src路径

testclass.class.getClassLoader() //获取一个类加载器

testclass.class.getClassLoader().getResourceAsStream("xxx"); 
//获取src下的资源
 @Test
  public void test6() throws IOException{
    Properties pro = new Properties();//集合,map,key=value
    //获取class对象
    Class clazz = testclass.class;
    //获取类加载器
    ClassLoader loader = clazz.getClassLoader();
    //获取类路径src下的文件
   InputStream in = loader.getResourceAsStream("demo.txt");
   // InputStream in = loader.getResourceAsStream("source/jdbc.txt");
    pro.load(in);
    System.out.println(pro);//{user=demo}
    System.out.println(pro.getProperty("user"));//demo
  }

类加载器详细介绍: https://blog.csdn.net/weixin_46369022/article/details/120685684.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GuochaoHN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值