在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


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

Servlet读取文件的最好的方式相关推荐

  1. C++ 读取文件的四种方式

    本文介绍C++ 读取文件的四种方式. 第一种方式: #include<iostream> #include<fstream> using namespace std;int m ...

  2. nodejs 逐行读取文件的两种方式

    nodejs 逐行读取文件的两种方式 通过readline的方式 const fs = require('fs'); const readline = require('readline');let ...

  3. php文件读取文件内容,PHP文件系统函数-读取文件内容几种方式

    介绍几种php获取文件内容的方式 介绍读取文件的方式之前,我们先看一下打开文件资源和关闭资源 名字资源绑定到一个流 - fopen 关闭一个已打开的文件指针 - fclose $handle1 = f ...

  4. FileReader读取文件的三种方式

    #日常练习 FileReader可以通过一次读取文件中一个字符,一次读取一个字符数组或使用缓冲区这三种方式来读取文件 备注:使用缓冲区的方式的内部实现是借助数组完成 package IO;import ...

  5. python读取文件的三种方式_python中读取文件的f.seek()方法

    用于二进制文件中 F.seek方法 作用: 设置读写位置 F.seek(偏移量, whence=相对位置) 偏移量 大于0的数代表向文件末尾方向移动的字节数 小于0的数代表向文件头方向中移动的字节数 ...

  6. linux shell 读取文件的三种方式

    假设存在文件user.csv 重定向标准输入,方式一: [root@wpuj3zui5est1ifj-0002 ~]# cat -n back.sh 1 #!/bin/bash2 #测试备份文件时候的 ...

  7. 探寻C++读取文件最快的方式

    在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式.相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据.还有人说Pascal的re ...

  8. shell脚本按行读取文件的几种方式

    1. #!/bin/bash while read line do echo $line done < filename(待读取的文件) 2. #!/bin/bash cat filename( ...

  9. 一行一行读取文件的两种方式

    1)方式1 static void Main(string[] args){ using (StreamReader reader = new StreamReader("1.txt&quo ...

最新文章

  1. Codeforces Round #649 (Div.2)题解
  2. python yaml配置文件_python读取yaml配置文件
  3. CTFshow php特性 web92
  4. Spring-AOP @AspectJ切点函数之target()和this()
  5. PHP 7.2 新功能介绍
  6. webview传递参数给html,uniapp与webview之间的相互传值
  7. mysql数据库表的类型介绍,mysql数据库表的类型介绍
  8. Hibernate之Hello World篇
  9. 经典软件测试技术分类
  10. java基础基本数据类型对象包装
  11. IDEA或Webstorm设置Terminal终端字体大小
  12. 生产者消费者_Kafka之生产者/消费者
  13. 测试用例设计技术之一等价类法
  14. 【图像压缩】基于matlab JEPG图像压缩【含Matlab源码 1167期】
  15. 机器学习(六):支持向量机(SVM)
  16. 无密码解锁iPhone
  17. 外观模式——透过现象看本质
  18. PHP文件绕过后缀执行配置
  19. 第一次课 优秀作业展示
  20. pdf转html在线预览,PDF转html

热门文章

  1. c和汇编混合编程----main的反汇编
  2. linux 安装qt 4.6软件,QT学习之一:Linux下安装QT之版本qt-4.6.3
  3. 详解 二叉搜索树-----AVL树
  4. Linux内核驱动之GPIO子系统(一)GPIO的使用
  5. Linux下的C编程实战之文件系统编程
  6. 844. Backspace String Compare
  7. Pollar Rho算法
  8. lambda 表达式定制操作
  9. Java进阶之光!javaunicode码转字符
  10. web开发软件,8个优秀的CSS实践,附面试题