c++ 文件读写_Java文件读写的常用技术
Java文件讀寫的常用技術(shù)——項(xiàng)目開發(fā)實(shí)戰(zhàn)篇
一、 概述:
本文主要以O(shè)ffice辦公軟件和PDF文件的讀寫為主線逐步展開說明,分析將相關(guān)格式的文件內(nèi)容文本化的過程。另外針對(duì)于Excel文件內(nèi)容的結(jié)構(gòu)化和對(duì)象化進(jìn)行實(shí)際案例分析,給出更適應(yīng)Spring框架配置的解決方案。
二、 POI基本介紹:
1、 POI基本描述:
POI是用編寫的免費(fèi)開源且跨平臺(tái)的Java API,Apache POI提供API給Java程式對(duì)格式檔案讀和寫的功能。POI為"Poor Obfuscation Implementation"的首字母縮寫,直譯為"可憐的模糊實(shí)現(xiàn)",或意為"簡潔版的模糊實(shí)現(xiàn)"。
.NET的開發(fā)人員則可以利用NPOI(POI for .NET)來存取Microsoft Office文檔的功能。
2、 POI需要的Jar包:
a) poi-3.10-Final.jar(用于xls);
b) poi-ooxml-3.10-Final.jar(用于xlsx);
c) poi-ooxml-schemas-3.10.jar;
d) xmlbeans-2.6.0.jar
e) dom4j-1.6.1.jar
f) poi-scratchpad-3.10-FINAL-20140208.jar(用于word,ppt)
3、 POI結(jié)構(gòu)說明(包名稱說明):
a) HSSF:提供讀寫Microsoft Excel XLS格式檔案的功能;
b) XSSF:提供讀寫Microsoft Excel OOXML XLSX格式檔案的功能;
c) HWPF:提供讀寫Microsoft Word DOC格式檔案的功能;
d) HSLF:提供讀寫Microsoft PowerPoint格式檔案的功能;
e) HDGF:提供讀Microsoft Visio格式檔案的功能;
f) HPBF:提供讀Microsoft Publisher格式檔案的功能;
g) HSMF:提供讀Microsoft Outlook格式檔案的功能;
三、 PDF基本介紹:
1、 摘要:
自從Adobe公司1993年第一次發(fā)布公共PDF參考以來,支持各種語言和平臺(tái)的PDF工具和類庫就如雨后春筍般涌現(xiàn)。然而,Java應(yīng)用開發(fā)中Adobe技術(shù)的支持相對(duì)滯后了。
自從Adobe公司1993年第一次發(fā)布公共PDF參考以來,支持各種語言和平臺(tái)的PDF工具和類庫就如雨后春筍般涌現(xiàn)。然而,Java應(yīng)用開發(fā)中Adobe技術(shù)的支持相對(duì)滯后了。這是個(gè)奇怪的現(xiàn)象,因?yàn)镻DF文檔是企業(yè)信息系統(tǒng)存儲(chǔ)和交換信息的大勢所趨,而Java技術(shù)特別適合這種應(yīng)用。然而,Java開發(fā)人員似乎直到最近才獲得成熟可用的PDF支持。
2、 特性:
PDFBox(一個(gè)BSD許可下的源碼開放項(xiàng)目)是一個(gè)為開發(fā)人員讀取和創(chuàng)建PDF文檔而準(zhǔn)備的純Java類庫。它提供如下特性:
a) 提取文本,包括Unicode字符;
b) 和Jakarta Lucene等文本搜索引擎的整合過程十分簡單;
c) 加密/解密PDF文檔;
d) 從PDF和XFDF格式中導(dǎo)入導(dǎo)出相關(guān)表單數(shù)據(jù);
e) 向已有PDF文檔中追加內(nèi)容;
f) 將一個(gè)PDF文檔切分為多個(gè)文檔;
g) 覆蓋PDF文檔;
3、 PDFBox API:
PDFBox設(shè)計(jì)時(shí)采用面向?qū)ο蟮姆绞絹砻枋鯬DF文檔。PDF文檔的數(shù)據(jù)是一系列基本對(duì)象的集合:數(shù)組,布爾型,字典,數(shù)字,字符串和二進(jìn)制流。PDFBox在org.pdfbox.cos包(COS模型)中定義這些基本對(duì)象類型。你可以使用這些對(duì)象與PDF文檔進(jìn)行任何交互,但你應(yīng)該先對(duì)PDF文檔內(nèi)部結(jié)構(gòu)以及高層概念作一些深入的了解。例如,頁面和字體都是帶有特殊屬性的字典對(duì)象;PDF參考手冊(cè)提供這些特殊屬性的含義和類型的說明,但這是一個(gè)枯燥的文檔查閱過程。
于是,org.pdfbox.pdfmodel包(PD模型)應(yīng)運(yùn)而生,它的基礎(chǔ)是COS模型,但提供了以一種熟悉的方式訪問PDF文檔對(duì)象的高層API。對(duì)底層COS模型進(jìn)行了封裝的PDPage和PDFont等類就在這個(gè)包中。
注意:雖然PD模型提供了一些優(yōu)秀的功能,但它依然是一個(gè)開發(fā)中的模型。在有些實(shí)例中,你可能需要借助于COS模型才能訪問PDF的特定功能性。所有的PD模型對(duì)象都提供返回相應(yīng)的COS模型對(duì)象的方法。所以,在一般情況下,你都會(huì)使用PD模型,但PD模型鞭長莫及時(shí)你可以直接操作底層的COS模型。
4、 PDF需要的Jar包:
a) pdfbox-1.7.1.jar;
b) fontbox-1.7.1.jar;
四、 各種文件的處理方式:
1、 Excel文件:
示例代碼:
ExcelTextParser
2、 Word文件:
示例代碼:
WordParser
3、 PPT文件:
示例代碼:
PPTParser
4、 Visio文件:
示例代碼:
VisioParser
5、 Pdf文件:
示例代碼:
PdfParser
五、 案例分析講解:
1、 設(shè)計(jì)說明:
以Excel文件的不同文件格式讀寫為例進(jìn)行分析。
a) 針對(duì)于文件格式的設(shè)計(jì):
i. XLS和XLSX:
雖然XLS是使用HSSFWorkbook,而XLSX是使用XSSFWorkbook,但針對(duì)于sheet的處理是一致的,因此使用同一個(gè)類進(jìn)行處理。另外將針對(duì)于每行數(shù)據(jù)的處理單獨(dú)抽取為一個(gè)類,簡化代碼邏輯,明確代碼層次關(guān)系;
ii. CSV:
以純文本形式存儲(chǔ)表格數(shù)據(jù)的,因此單獨(dú)創(chuàng)建一個(gè)類進(jìn)行處理。注意:將分隔符(默認(rèn)是英文逗號(hào))和數(shù)據(jù)起始行號(hào)單獨(dú)保存單獨(dú)的私有成員變量中,以保證代碼的通用性;
b) 針對(duì)于代碼結(jié)構(gòu)的設(shè)計(jì):
使用接口將對(duì)象整合,以便在注入時(shí)可以使用同一個(gè)對(duì)象實(shí)例化。
2、 類圖:
PowerDesigner類圖
3、 Spring配置:
Spring配置
4、 各個(gè)類的具體情況:
a) IParser:
IParser
b) ExcelParser:
ExcelParser
c) CsvParser:
CsvParser
d) RowParser:
RowParser
總結(jié)
以上是生活随笔為你收集整理的c++ 文件读写_Java文件读写的常用技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python重复元素判定_20段极简Py
- 下一篇: python log函数_python要