无为县住房和城乡建设局网站,php网站开发txt,房地产设计方案,c++实现微博第三方登录 没有公司和网站如何做特殊文件
我们利用这些特殊文件来存放我们 java 中的数据信息#xff0c;当数据量比较大的时候#xff0c;我们可以利用这个文件对数据进行快速的赋值 对于多个用户数据的存储的时候我们要用这个XML来进行存储 关于这些特殊文件#xff0c;我们主要学什么
了解他们的特点当数据量比较大的时候我们可以利用这个文件对数据进行快速的赋值 对于多个用户数据的存储的时候我们要用这个XML来进行存储 关于这些特殊文件我们主要学什么
了解他们的特点作用学习使用程序读取他们里面的数据学习使用程序把数据存储到这些文件里
Properties属性文件
了解它们的特点、作用 学习使用程序读取它们里面的数据 学习使用程序把数据存储到这些文件里
是一个Map集合键值对集合但是我们一般不会当集合使用。 核心作用Properties是用来代表属性文件的通过Properties可以读写属性文件里的内容。 使用Properties读取属性文件里的键值对数据
构造器说明public Properties()用于构建 Properties 集合对象空容器
读
我们首先要通过这个文件的字节或者字符输入流来读取这个属性文件中的数据。
常用方法说明public void load(InputStream is)通过字节输入流读取属性文件里的键值对数据public void load(Reader reader)通过字符输入流读取属性文件里的键值对数据public String getProperty(String key)根据键获取值(其实就是get方法的效果)public SetString stringPropertyNames()获取全部键的集合其实就是 ketSet 方法的效果
其实它本质作用就是我们用来读取文件中的等号两边的元素 其本质是一个map集合 文件内容,好像中文格式不兼容?
admin123456
张无忌minmin
sadfwuji
asfdafwujipublic static void main(String[] args) throws IOException { // 创建这个特殊文件Properties pt new Properties();System.out.println(pt); //输出为空pt.load(new FileReader(LearnJavaSE\\Learn\\src\\Metamorphosis\\day4\\SpecialFile\\p.properties));System.out.println(pt);System.out.println(pt.getProperty(admin)); //根据键的值来读取数据.写
常用方法说明public Object setProperty(String key, String value)保存键值对数据到Properties对象中去。public void store(OutputStream os, String comments)把键值对数据通过字节输出流写出到属性文件里去public void store(Writer w, String comments)把键值对数据通过字符输出流写出到属性文件里去属性文件并不是后缀是properties才是属性文件只要满足键值对的书写格式,那么 txt 也是属性文件 // 创建这个特殊文件Properties pt new Properties();System.out.println(pt); // 输出为空pt.load(new FileReader(LearnJavaSE\\Learn\\src\\Metamorphosis\\day4\\SpecialFile\\test.txt));System.out.println(pt);System.out.println(pt.getProperty(admin)); // 根据键的值来读取数据.XML文件
本质是一种数据的格式可以用来存储复杂的数据结构和数据关系。 XML的特点
XML中的“标签名” 称为一个标签或一个元素一般是成对出现的。XML中的标签名可以自己定义可扩展但必须要正确的嵌套。XML中只能有一个根标签。XML中的标签可以有属性。如果一个文件中放置的是XML格式的数据这个文件就是XML文件后缀一般要写成.xml。 和HTML文件,惊人的类似
XML的创建
就是创建一个 XML 类型的文件要求文件的后缀必须使用 xml如 hello_world.xml, 这一点和这个 properties 文件不太一样,properties 只需要内容的格式满足条件就可以了, 其他的要求不高的 开头文件的格式必须这样写,必须放在第一行
?xml version1.0 encodingUTF-8 ?versionXML默认的版本号码、该属性是必须存在的encoding本XML文件的编码文件中的特殊符号
XML 中可以定义注释信息 这个和这个 html 文件是一样的. XML中书写””、“”等可能会出现冲突导致报错此时可以用如下特殊字符替代。 lt; 小于gt; 大于amp; 和号apos; 单引号quot; 引号XML中可以写一个叫CDATA的数据区: ![CDATA[ …内容… ]]里面的内容可以随便写。**此时的小于号还有大于号就不用再用特殊符号了**
?xml version1.0 encodingutf-8 ?
usersuse id1name张无忌/namesex男/sex/useuse id2name任盈盈/namesex女/sex/use
/users作用
本质是一种数据格式可以存储复杂的数据结构和数据关系。 应用场景经常用来做为系统的配置文件或者作为一种特殊的数据结构在网络中进行传输。 XML文件的解析
注意程序员并不需要自己写原始的IO流代码来解析XML难度较大也相当繁琐 其实有很多开源的好用的解析XML的框架最知名的是Dom4j(第三方研发的) SAXReaderDom4j 提供的解析器可以认为是代表整个 Dom4j 框架
构造器/方法说明public SAXReader()构建Dom4J的解析器对象public Document read(String url)把XML文件读成Document对象public Document read(InputStream is)通过字节输入流读取XML文件使用方法
SAXReader sr new SAXReader();
Document doc sr.read(LearnJavaSE\\Learn\\src\\Metamorphosis\\day4\\SpecialFile\\xmlTest.xml);
Document doc2 sr.read(new FileReader(LearnJavaSE\\Learn\\src\\Metamorphosis\\day4\\SpecialFile\\xmlTest.xml));方法名说明Element getRootElement()获得根元素对象获取根节点根节点是这个 xml 分析的开始任何 xml 分析工作都要从这个根开始
Element root doc.getRootElement(); 注意这个文件名字不能有中文
解析的核心操作
方法名说明public String getName()得到元素名字public ListElement elements()得到当前元素下所有子元素public ListElement elements(String name)得到当前元素下指定名字的子元素返回集合public Element element(String name)得到当前元素下指定名字的子元素,如果有很多名字相同的返回第一个public String attributeValue(String name)通过属性名直接得到属性值public String elementText(子元素名)得到指定名称的子元素的文本public String getText()得到文本
xml 的基本操作如下
?xml version1.0 encodingutf-8 ?
usersuse id1name张无忌/namesex男/sex/useuse id2name任盈盈/namesex女/sex/use
/users // 我们首先要读取这个xml文件SAXReader sr new SAXReader();Document doc sr.read(LearnJavaSE\\Learn\\src\\Metamorphosis\\day4\\SpecialFile\\xmlTest.xml);// Document doc2 sr.read(new// FileReader(LearnJavaSE\\Learn\\src\\Metamorphosis\\day4\\SpecialFile\\xmlTest.xml));Element root doc.getRootElement();System.out.println(root.getName()); // 根节点名称ListElement elements root.elements();for (Element elements2 : elements) {System.out.println(elements2.getName()); // 根节点下的节点名,只能是一层,第二层的节点名比如说这个name和sex是无法读取的//根据属性名来获取这个id对象的值System.out.println(elements2.attributeValue(id));// 获取这个use类中的名称为name的所有子元素,并返回集合,然后可以读取这个text文本了ListElement elements3 elements2.elements(name);for (Element elements32 : elements3) {System.out.println(elements32.getText());}
得到当前元素下指定名字的子元素,如果有很多名字相同的返回第一个 Element people rootElement.element(people);System.out.println(people.getText());把程序中的数据写入到XML文件中 StringBuilder sb new StringBuilder();sb.append(?xml version\1.0\ encoding\UTF-8\ ?\r\n);sb.append(book\r\n);sb.append(name).append(从入门到跑路).append(/name\r\n);sb.append(author).append(dlei).append(/author\r\n);sb.append(name).append(从入门到跑路).append(/name\r\n);sb.append(/book);BufferedWriter bufferedWriter new BufferedWriter(new FileWriter(src/day5/newtest.xml));bufferedWriter.write(sb.toString());bufferedWriter.close();我们如果不用这个 dom4库来进行写,我们还可以通过这个 IO 流的读写方式来进行读写但是没有必要用别人封装好的就行java 只需要 nb 就是因为这些别人封装好的库这些库使得大多数的 java 操作变得简单了
约束XML文件的书写
顾名思义就是限制 XML 文件只能按照某种格式进行书写。 专门用来限制xml书写格式的文档比如限制标签、属性应该怎么写。
约束文档的分类
DTD文档 Schema文档
XML文档约束-DTD的使用了解
需求利用DTD约束文档约束一个XML文件的编写。 ①编写DTD约束文档后缀必须是.dtd
!ELEMENT 书架 (书)
!ELEMENT 书 (书名,作者,售价)
!ELEMENT 书名 (#PCDATA)
!ELEMENT 作者 (#PCDATA)
!ELEMENT 售价 (#PCDATA)
可以约束XML文件的编写 不能约束具体的数据类型 ②在需要编写的XML文件中导入该DTD约束文档 ③然后XML文件就必须按照DTD约束文档指定的格式进行编写否则报错
!ELEMENT 书架 (书) //表示这个根元素是书架,然后根元素的子元素是书,加号表示不止只有一个子元素
!ELEMENT 书 (书名,作者,售价)
!ELEMENT 书名 (#PCDATA) //子元素的子元素
!ELEMENT 作者 (#PCDATA)
!ELEMENT 售价 (#PCDATA)?xml version1.0 encodingUTF-8 ?
!DOCTYPE 书架 SYSTEM data.dtd
书架书书名从入门到删库/书名作者小猫/作者售价很便宜/售价/书书书名从入门到删库/书名作者小猫/作者售价9.9/售价/书书书名从入门到删库/书名作者小猫/作者售价9.9/售价/书
/书架XML文档约束-schema的使用了解
可以约束XML文件的编写、和数据类型 需求利用schema文档约束约束一个XML文件的编写。 ①编写schema约束文档后缀必须是.xsd具体的形式到代码中观看。 ②在需要编写的XML文件中导入该schema约束文档 ③按照约束内容编写XML文件的标签。
?xml version1.0 encodingUTF-8 ?
//xmln后面的网址表示这个xsd文档本身也是受到别人约束的
schema xmlnshttp://www.w3.org/2001/XMLSchematargetNamespacehttp://www.itcast.cn elementFormDefaultqualified //这个不用管,直接把这个复制到xsd文档开头就行了.!-- targetNamespace:申明约束文档的地址命名空间--element name书架!-- 写子元素 --complexType!-- maxOccursunbounded: 书架下的子元素可以有任意多个--sequence maxOccursunboundedelement name书!-- 写子元素 --complexTypesequenceelement name书名 typestring/element name作者 typestring/element name售价 typedouble//sequence/complexType/element/sequence/complexType/element
/schema?xml version1.0 encodingUTF-8 ?
书架 xmlnshttp://www.itcast.cn //声明一个包名和xsd的里面的那个targetNamespace中的内容一样xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://www.itcast.cn data.xsd!-- xmlnshttp://www.itcast.cn 基本位置xsi:schemaLocationhttp://www.itcast.cn books02.xsd 具体的位置 --书书名从入门到删除/书名作者dlei/作者售价9.9/售价/书书书名从入门到删除/书名作者dlei/作者售价0.9/售价/书
/书架