在java项目中通过相对路径获取资源的方式

1.可以通过 类名.class.getResource方法获取或者getSystemResource
2.可以通过当前线程 Thread.currentThread().getContextClassLoader().getResource获取
public class TestDemo {

public static void main(String[] args) throws FileNotFoundException, IOException {
 Properties pro=new Properties();
 TestDemo test=new TestDemo();
 pro.setProperty("url", "localhost:8080");
 pro.setProperty("username", "root");
 pro.setProperty("password", "123");
 String filepath="G:/util/";
 //pro.store(new FileOutputStream(new File("db.properties")), "资  源配置");
File file =new File(filepath);
 if(!file.exists()){
     file.mkdir();
 }
  File realpath=new File(file,"db.properties");
  if(!realpath.exists()){
      realpath.createNewFile();
  }
 //写入properties文件
  pro.store(new FileOutputStream(realpath), "properties配置");
  File xmlpath=new File(file,"db.xml");
  if(!xmlpath.exists()){
      xmlpath.createNewFile();  
  }
  //写入xml文件中
  pro.storeToXML(new FileOutputStream(xmlpath), "xml配置");
  //加载配置文件
  Properties pro1=new Properties();
 // pro1.load(TestDemo.class.getClassLoader().getResourceAsStream("test/db.properties"));
  //获取文件的相对路径
  //1.可以通过 类名。class.getResource方法获取或者getSystemResource
  //2.可以通过当前线程 Thread.currentThread().getContextClassLoader()。getResource获取
  pro1.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("test/db.properties"));
  System.out.println(TestDemo.class.getResource("/test/db.properties"));
  System.out.println(Thread.currentThread().getContextClassLoader().getResource("test/db.properties"));
  //System.out.println(Thread.currentThread().getContextClassLoader().getSystemResource("test/db.properties"));
  System.out.println(test.getClass().getClassLoader().getResourceAsStream("test/db.properties"));
  System.out.println(TestDemo.class.getResource("/"));//斜杠代表从根路径 开始
  System.out.println(TestDemo.class.getResource(""));//空格代表当前类的相对路径开始
  System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));//空格代表从根路径开始
  String str= pro1.getProperty("password", "没找到");
 System.out.println(str);

}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值