package com.itheima.servlet.cfg;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Properties;
import java.util.ResourceBundle; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class LoaderCfgServletDemo1 extends HttpServlet { //第一种方式,可以加载所有目录下的内容,但只用于web项目
//test11();
//test12();//ppp
//test13();
//第二种方式 ResouceBundle专门用于读取properties文件的,
//只用于加载类路径classes目录下的文件
//java项目和web项目都可以用
//test21();
//test22();//基名 ppp //第三种方式 就是用ClassLoader类加载器
//得到类加载器的方法 LoaderCfgServletDemo1.class.getClassLoader()
//类加载器一上来定位的目录是classes
//test31();
//test32();
//test33();
//曾经的回顾
//test34(); public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//test11();
//test12();
//test13();
//test21();
//test22();
//test31();
//test32();
//test33();
//test34();
}
//pp
public void test34() throws IOException, FileNotFoundException {
ClassLoader cl = LoaderCfgServletDemo1.class.getClassLoader();
URL url = cl.getResource("cfg.properties");//协议+主机名(包含端口)+资源地址
//System.out.println(url.getPath()); Properties p = new Properties();
p.load(new FileInputStream(url.getPath()));
System.out.println(p.getProperty("p"));
}
//pppp
public void test33() throws IOException, FileNotFoundException {
ClassLoader cl = LoaderCfgServletDemo1.class.getClassLoader();
//这是相对于classes这个目录而言,找它的上一级
InputStream is = cl.getResourceAsStream("../cfg.properties");
Properties p = new Properties();
p.load(is);
System.out.println(p.getProperty("p"));
}
//pp
public void test32() throws IOException, FileNotFoundException {
ClassLoader cl = LoaderCfgServletDemo1.class.getClassLoader();
InputStream is = cl.getResourceAsStream("cfg.properties");//如何写路径
Properties p = new Properties();
p.load(is);
System.out.println(p.getProperty("p"));
}
//ppp
public void test31() throws IOException, FileNotFoundException {
ClassLoader cl = LoaderCfgServletDemo1.class.getClassLoader();
InputStream is = cl.getResourceAsStream("com/itheima/servlet/cfg/cfg.properties");//如何写路径
Properties p = new Properties();
p.load(is);
System.out.println(p.getProperty("p"));
}
//ppp
public void test22() throws IOException, FileNotFoundException {
ResourceBundle rb = ResourceBundle.getBundle("com.itheima.servlet.cfg.cfg");//基名(包名.文件名(不带扩展名))
System.out.println(rb.getString("p"));
}
//pp
public void test21() throws IOException, FileNotFoundException {
ResourceBundle rb = ResourceBundle.getBundle("cfg");//基名
System.out.println(rb.getString("p"));
}
public void test13() throws IOException, FileNotFoundException {
//1第一种 ,用/代表当前应用 pppp
String path =getServletContext().getRealPath("/WEB-INF/cfg.properties");
//System.out.println(path);
Properties p = new Properties();
p.load(new FileInputStream(path)); System.out.println(p.getProperty("p"));
}
public void test12() throws IOException, FileNotFoundException {
//1第一种 ,用/代表当前应用 ppp
String path =getServletContext().getRealPath("/WEB-INF/classes/com/itheima/servlet/cfg/cfg.properties");
//System.out.println(path);
Properties p = new Properties();
p.load(new FileInputStream(path)); System.out.println(p.getProperty("p"));
}
private void test11() throws IOException, FileNotFoundException {
//1第一种 ,用/代表当前应用 pp
String path =getServletContext().getRealPath("/WEB-INF/classes/cfg.properties");
//System.out.println(path);
Properties p = new Properties();
p.load(new FileInputStream(path));
System.out.println(p.getProperty("p"));
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
} }

java 学习笔记 读取配置文件的三种方式的更多相关文章

  1. Java学习笔记——显示当前日期的三种方式

    一.Date类:这是一种过时的表达方式 import java.util.Date; Date date = new Date(); System.out.println((1900+date.get ...

  2. Servlet读取配置文件的三种方式

    一.利用ServletContext.getRealPath()[或getResourceAsStream()] 特点:读取应用中的任何文件.只能在web环境下. private void text3 ...

  3. Spring Boot 入门系列(二十五)读取配置文件的几种方式详解!

    在项目开发中经常会用到配置文件,之前介绍过Spring Boot 资源文件属性配置的方法,但是很多朋友反馈说介绍的不够详细全面.所以, 今天完整的分享Spring Boot读取配置文件的几种方式! S ...

  4. Java反射获取class对象的三种方式,反射创建对象的两种方式

    Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName ...

  5. java核心知识点学习----创建线程的第三种方式Callable和Future CompletionService

    前面已经指出通过实现Runnable时,Thread类的作用就是将run()方法包装成线程执行体,那么是否可以直接把任意方法都包装成线程执行体呢?Java目前不行,但其模仿者C#中是可以的. Call ...

  6. java加载配置文件的三种方式

    比如我们要加载db.properties文件 如图: 比如我们要加载source目录下的db.properties文件.就有以下几种方式 第一种是文件io流: public static void l ...

  7. 【java多线程】多线程的创建三种方式--笔记

    申明:线程的概念以及进程的相关概念,可以参考网络上其他资料,这里只讨论多线程是怎么实现. 一.多线程的简单理解 明白什么是多线程,小生通俗一点的理解为:在一个程序里,我想同时让这个程序完成多个任务. ...

  8. Spring学习之实例化bean的三种方式

    实例化bean的三种方式 构造器实例化bean Person.java public class Person { private String name; private Integer age; ...

  9. Java中 实现多线程成的三种方式(继承,实现,匿名内部类)

    ---------------------------------------------------------------------------------------------------- ...

随机推荐

  1. hdu 3549最大流Ford-Fulkerson算法

    Ford-Fulkerson算法 戳戳http://www.cnblogs.com/luweiseu/archive/2012/07/14/2591573.html Ford-Fulkerson方法依 ...

  2. MySQL索引实战经验总结

    MySQL索引对数据检索的性能至关重要,盲目的增加索引不仅不能带来性能的提升,反而会消耗更多的额外资源,本篇总结了一些MySQL索引实战经验. 索引是用于快速查找记录的一种数据结构.索引就像是数据库中 ...

  3. 201521123115《Java程序设计》第7周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 1.2 解释E re ...

  4. 201521123071 《JAVA程序设计》第十二周学习总结

    第12周作业-多线程 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件线程相关内容. 2. 书面作业 1. 字符流与文本文件:使用 PrintWriter(写),Buff ...

  5. 201521123060 《Java程序设计》第11周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2.书面作业 本次PTA作业题集多线程 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1. ...

  6. 201521123085 《Java程序设计》第12周学习总结

    1. 本周学习总结 2. 书面作业 将Student对象(属性:int id, String name,int age,double grade)写入文件student.data.从文件读出显示. 1 ...

  7. 前端基础之HTML

    一.HTML 段落是通过 <p> 标签进行定义的 如: <p> hello world! </p> <html> 与 </html> 之间的 ...

  8. 磁盘管理之inode与block

    索引式文件系统 什么是inode? Inode其实就是索引号,便于我们寻找我们文件所存储的数据块block,索引式文件系统在查找信息,读写操作上都比原来的文件系统要快,我们可以通过inode中记录的b ...

  9. SpringMVC HelloWorld实例开发及部署

    SpringMVC HelloWorld实例开发及部署 2017-01-24 目录 1 Tomcat及Eclipse Tomcat插件安装配置  1.1 Tomcat的安装  1.2 Eclipse ...

  10. <c:forEach>+<c:if>

    <c:forEach>:用来做循环<c:if>:相当于if语句用于判断执行,如果表达式的值为 true 则执行其主体内容. <c:forEach var="每个 ...