c++ 文件读写_Java文件读写的常用技术
Java文件讀寫的常用技術——項目開發實戰篇
一、 概述:
本文主要以Office辦公軟件和PDF文件的讀寫為主線逐步展開說明,分析將相關格式的文件內容文本化的過程。另外針對于Excel文件內容的結構化和對象化進行實際案例分析,給出更適應Spring框架配置的解決方案。
二、 POI基本介紹:
1、 POI基本描述:
POI是用編寫的免費開源且跨平臺的Java API,Apache POI提供API給Java程式對格式檔案讀和寫的功能。POI為"Poor Obfuscation Implementation"的首字母縮寫,直譯為"可憐的模糊實現",或意為"簡潔版的模糊實現"。
.NET的開發人員則可以利用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結構說明(包名稱說明):
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年第一次發布公共PDF參考以來,支持各種語言和平臺的PDF工具和類庫就如雨后春筍般涌現。然而,Java應用開發中Adobe技術的支持相對滯后了。
自從Adobe公司1993年第一次發布公共PDF參考以來,支持各種語言和平臺的PDF工具和類庫就如雨后春筍般涌現。然而,Java應用開發中Adobe技術的支持相對滯后了。這是個奇怪的現象,因為PDF文檔是企業信息系統存儲和交換信息的大勢所趨,而Java技術特別適合這種應用。然而,Java開發人員似乎直到最近才獲得成熟可用的PDF支持。
2、 特性:
PDFBox(一個BSD許可下的源碼開放項目)是一個為開發人員讀取和創建PDF文檔而準備的純Java類庫。它提供如下特性:
a) 提取文本,包括Unicode字符;
b) 和Jakarta Lucene等文本搜索引擎的整合過程十分簡單;
c) 加密/解密PDF文檔;
d) 從PDF和XFDF格式中導入導出相關表單數據;
e) 向已有PDF文檔中追加內容;
f) 將一個PDF文檔切分為多個文檔;
g) 覆蓋PDF文檔;
3、 PDFBox API:
PDFBox設計時采用面向對象的方式來描述PDF文檔。PDF文檔的數據是一系列基本對象的集合:數組,布爾型,字典,數字,字符串和二進制流。PDFBox在org.pdfbox.cos包(COS模型)中定義這些基本對象類型。你可以使用這些對象與PDF文檔進行任何交互,但你應該先對PDF文檔內部結構以及高層概念作一些深入的了解。例如,頁面和字體都是帶有特殊屬性的字典對象;PDF參考手冊提供這些特殊屬性的含義和類型的說明,但這是一個枯燥的文檔查閱過程。
于是,org.pdfbox.pdfmodel包(PD模型)應運而生,它的基礎是COS模型,但提供了以一種熟悉的方式訪問PDF文檔對象的高層API。對底層COS模型進行了封裝的PDPage和PDFont等類就在這個包中。
注意:雖然PD模型提供了一些優秀的功能,但它依然是一個開發中的模型。在有些實例中,你可能需要借助于COS模型才能訪問PDF的特定功能性。所有的PD模型對象都提供返回相應的COS模型對象的方法。所以,在一般情況下,你都會使用PD模型,但PD模型鞭長莫及時你可以直接操作底層的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、 設計說明:
以Excel文件的不同文件格式讀寫為例進行分析。
a) 針對于文件格式的設計:
i. XLS和XLSX:
雖然XLS是使用HSSFWorkbook,而XLSX是使用XSSFWorkbook,但針對于sheet的處理是一致的,因此使用同一個類進行處理。另外將針對于每行數據的處理單獨抽取為一個類,簡化代碼邏輯,明確代碼層次關系;
ii. CSV:
以純文本形式存儲表格數據的,因此單獨創建一個類進行處理。注意:將分隔符(默認是英文逗號)和數據起始行號單獨保存單獨的私有成員變量中,以保證代碼的通用性;
b) 針對于代碼結構的設計:
使用接口將對象整合,以便在注入時可以使用同一個對象實例化。
2、 類圖:
PowerDesigner類圖
3、 Spring配置:
Spring配置
4、 各個類的具體情況:
a) IParser:
IParser
b) ExcelParser:
ExcelParser
c) CsvParser:
CsvParser
d) RowParser:
RowParser
總結
以上是生活随笔為你收集整理的c++ 文件读写_Java文件读写的常用技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python重复元素判定_20段极简Py
- 下一篇: status c语言_C/C++编程笔记