Xml
1.DOM解析(官方)
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse("file");
NodeList list = document.getElementsByTagName("ndoe");//常规的DOM操作
} catch (Exception e) {
e.printStackTrace();
}
parse()方法加载XML文件到当前程序。
将XML文件全部加载到内存中,然后逐个解析。
2.SAX解析(官方)
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
parser.parse("file",handler);
}catch (Exception e) {
e.printStackTrace();
}
参数handler是一个继承了DefaultHandler类的子类的实例化对象。
这个子类中解析文档、元素的方法如下:
--------startDocument() //解析XML文件开始
-----------------------startElement() //开始解析某个元素
-----------------------endElement() //结束解析该元素(通常将解析获得的信息存到一个对象)
-----------------------startElement() //开始解析另一个个元素
-----------------------endElement() //结束解析元素
---------endDocument() //解析XML文件结束
SAX解析XML文件的方法是从头到尾一步一步地解析文档的节点元素,是一种事件驱动模式,对内存耗费
较小。
3.JDOM解析(非官方,DOM的拓展)
需要事先导入一个JDOM的jar包到项目。后面导入的类也是JDOM包下的的类
try {
SAXBuilder saxbuilder = new SAXBuilder();
Document document = saxbuilder.build("file");
Element rootElement = document.getRootElement(); //获得XML文件的根节点
}catch (Exception e) {
e.printStackTrace();
}
获得根节点之后,通过getChildren()方法获得其子节点的List集合。
4.DOM4J解析(非官方,DOM的拓展,现在比较流行的)
同理,由于是非官方的,我们依然需要引入一个DOM4J的jar包
try {
SAXReader reader = new SAXReader();
Document document = reader.read("file");
Element rootElement = document.getRootElement();//获得XML文件的根节点
}catch (Exception e) {
e.printStackTrace();
}
性能优异,灵活性好,功能强大,易使用,所以现在比较流行使用DOM4J解析XML。
注意:以上所有引入文件方法的参数"file",可以是文件路径字符串,可以是一个文件对象,也可以是
一个文件输入流对象。
Properties
以Redis的配置文件redis.properties为例,配置文件默认路径为src路径
方式一 、通过Properties类来封装配置文件方式
//1、 通过类加载器,获取配置文件的输入流。
InputStream in =
当前类(比如User).class.getClassLoader().getResourceAsStream("redis.properties");
//2、新建一个Properties对象
Properties properties = new Properties();
try {
pro.load(in); //properties对象封装配置文件的输入流,现在文件里面的信息都已被封装成String
} catch (IOException e) {
e.printStackTrace();
}
//3、获取配置文件.properties中的配置信息(伪代码)
String strvalue= properties.getProperty("配置文件中的KEY");
//4、如果是int类型
int intvalue = Integer.parseInt(strvalue);
方式二、 通过ResourceBundle类来封装配置文件
//1、通过ResourceBundle 来加载redis配置文件,不需要写后缀,不需要写后缀,不需要写后缀
ResourceBundle properties = ResourceBundle.getBundle("redis");
//2、获取配置文件.properties中的配置信息(伪代码)
String strvalue= properties.getProperty("配置文件中的KEY");
//3、如果是int类型
int intvalue = Integer.parseInt(strvalue);
「三年博客,如果觉得我的文章对您有用,请帮助本站成长」
共有 0 - java读取文件流(xml与properties)