Java進階 IV

第四章 高級文件處理(附Debug)

4.1 爲何需要XML

  1. XML,可擴展標記語言 = 意義+數據
  2. XML:數據+含義 ~ 用於傳輸數據;HTML:顯示數據
  3. 標簽自定義
  4. 純文本 ~ 跨系統 / 平臺 / 語言
  5. W3C 標準
  6. 語法 ~ 根元素 + 大小寫敏感 +屬性必須有數值&引號 + 轉義字符 + <!–>
code需轉義字符描述
&lt<小於
&gt>大於
&amp&和號
&apos單引
&quot‘’雙引
  1. DTD ~ 定義XML結構
<!DOCTYPE note[
	<!Element note (to,from,heading,body)>
	<!Element to		(#PCDATA)>
	<!Element from		(#PCDATA)>
	<!Element heading	(#PCDATA)>
	<!Element body		(#PCDATA)>
]>
  1. XDL ~ DTD繼承者
  2. XSL ~ 如CSS之於HTML,擴展樣式表語言 ~ XSLT, XPath, XSL-FO

4.2 XML解析

  1. 兩方法:樹結構(DOM,讀寫)/流結構(SAX,擅長讀)

  2. DOM ~ 樹結構讀入内存 ~ 大量數據有内存泄漏及程序崩潰風險 ~ 空白元素
    空白元素demo

  3. DOM ~ DocumentBuilder解析類 ~ parse方法
    getChildNodes ~ 返回 一個NodeList列表, 每一個元素都是Node
    12結點 ~ document根結點 + Element結點 + Text結點 + ...
    DOM写XML:CreatElement ~ appendChild ~ transformer

  4. SAX ~ Simple API for XML ~ 事件/流模型 ~ 快速輕量
    流讀取後的數據不再存儲(讀下一行代碼渣一上行,不再記得) ~ 很難同時訪問多處數據(很難同時再把他們約出來) ~ 推模型()
    XMLReader類
    BookHandler類

    5個回調方法:
    startDocument 文檔解析
    endDocument 文檔結束解析
    startDocument 開始訪問元素
    endDocument 結束訪問
    characters 訪問正文元素

  5. Stax ~ Sax繼承者 ~ 拉模型(只拉感興部分,選擇性處理)
    指針 ~ XMLStreamReader類
    迭代器 ~ XMLEventReader類

  6. DOM / SAX / Stax是JDK自帶 ~ 第三方庫(JDOM / DOM4J)一般多種解析方式
    –JDOM ~ www.jdom.org
    –DOM4J ~ dom4j.github.io

4.2 JSON解析

  1. JS Object Notation~ 輕量數據交換格式 ~ 最早只用在JS上 ~ 獨立於編程語言

  2. JSON Object ~ “K”:"V"對 ~ 逗號隔開
    {"name":"JO","email":"a@b.com"}

  3. JSON Array ~ 方括號存數組
    [{"name":"JO","email":"a@b.com"},{"name":"JO","email":"a@b.com"}]

  4. Java本身無JSON處理方法(對XML有)
    第三方:org.json GSON Jackson
    主用途:生成 解析 校驗
    JavaBean對象互解析: JavaBean ~ 無參構造函數+多個private的屬性+Setter/Getter方法+用於封裝數據(故又名POJO,普通Java對象)

    *類名不同org.json包~JSONObject GoogleGSON包~JsonObject

  5. JSON 與 XML ~ 數據交換格式 ~ 可讀性/可擴展性高
    JSON:編碼簡單+轉換方便+字符長度小+傳輸效率高會丟失顺序信息
    XML:注重標簽和順序

4.3 图形图像+条形码+二维码

  1. 图像Image,像素点组成;图形Graph,矢量图
  2. 验证码生成:外框+底色+干扰线+字母 ~ 不要用0、o、1、I、L
  3. 统计图:两步 ~ 设定数据集->调用JFreeChart
  4. 条形码和二维码:
    条形码 ~ 条&空 ~ 容纳一维30字母/数字
    专门机构:中国物品编码中心
    二维码 ~ 数字/字母/汉字/图片 抗损坏
    Zxing ~ Google出品
    Barcode4J ~ 只负责生成不负责解析

4.4 Docx

Word2003和之前都是doc格式,文档格式不公开(经典微软)
Word2007和之后都是docx格式,遵循XML路线,文档格式公开

  1. 常见功能
    docx解析
    docx生成(分成套打和完全生成)
  2. 处理三方库
    Jacob、COM4J(Windows平台)
    POI,docx4j,OpenOffice/Libre Office SDK(免费)
    Aspose(收费)
    开源OpenXML的包
  3. Apache POI
    纯Java工具包,无需第三方依赖
    主要类:
    XWPFDocument(整个文档)/Paragraph(段落)/Run(字体样式相同一个片段)/Picture/Table

Demo

1. Dom技術解析.xml文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.Dom技術寫.xml文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.SAX技術解析.xml文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.Stax技術寫.xml文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.JSON讀入生成(org.json/GSON/Jackson)

XML(1998发布)
JSON(2002发布)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

*Debug of Eclipse

Run ~ alt+shift+x
Debug ~ alt+shift+D
進入Debug模式后:
F8 ~ 運行至下一斷點
F5 ~ 進入當前方法
F6 ~ 運行下一行代碼
F7 ~ 退出當前方法(回到調用層)

參考文獻

  1. Eclipse设置项目文件更新,自动刷新workspace
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值