Servlet读取文件的最好的方式

本文分享了在Java Web开发中读取属性配置文件的三种实用技巧,包括常规方式、利用ServletContext类的方式以及通过类装载器读取类路径下文件信息的方法。重点介绍了使用Properties类进行属性值获取的优势,以及使用属性配置文件带来的代码可维护性的提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在java web 开发的时候不可避免的会读取文本信息,但是方式不同,所付出的代价也是不一样的,今天学到了一个比较好的实用性的技巧,拿来与大家分享一下。

读取属性配置文件


之所以说成是读取属性(properties)文件,是因为它在开发中使用的频率较高,而且也不像读取xml文件那样的复杂。下面请看


先是目录结构:
目录结构


下面看一看目标文件的内容吧db.properties文件:

driver = com.mysqy.jdbc.Driver
url = jdbc:mysql://localhost:3306
user = root
password = mysql
  • 常规方式

FileInputStream  fis = new FileInputStream(new File("db.properties"));
        System.out.println(fis);

小结:
采用这个方式会很繁琐,而且对于文件的操作也不是很方便,我们需要手动的处理很多信息。

  • java web 方式

response.getWriter().append("Served at: ").append(request.getContextPath());

        FileInputStream fis = (FileInputStream) this.getServletContext()
                .getResourceAsStream("/WEB-INF/classes/db.properties");
        Properties properties = new Properties();
        properties.load(fis);
        String url = properties.getProperty("url");
        System.out.println(url);

运行结果:

jdbc:mysql://localhost:3306

小结:

  1. 采用这个方式是利用了在web项目中ServletContext这个类的共享信息的特征
  2. 读取文件的目录是相对于这个项目本身的相对的路径,这样显得更加的灵活
  3. 使用Properties类进行对属性值的获取,其底层是map的键值对的实现原理
  4. 使用属性配置文件的好处在于,在修改代码的时候只需要修改文件中的信息即可。代码的可维护性大大的得到了增强

  • 使用类装载器进行读取类路径下文件信息(src路径下的配置文件) 的方法

ClassLoader loader = MyServlet.class.getClassLoader();
        InputStream is = (InputStream) loader.getResourceAsStream("db.properties");
        Properties properties = new Properties();
        properties.load(is);
        String password = properties.getProperty("password");
        System.out.println("java web项目获得的类路径下的文件的属性配置文件信息是:"+ password);

程序运行结果是:

java web项目获得的类路径下的文件的属性配置文件信息是:mysql


这样也可以达到相同读取文件信息的效果!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

泰 戈 尔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值