以下是Java对几种文本文件内容读取代码。其中,OFFICE文档(WORD,EXCEL)使用了POI控件,PDF使用了PDFBOX控件。
点击这里查看相关控件的下载地址和配置方法。
WORD
- package textReader;
- import java.io.*;
- import org.apache.poi.hwpf.extractor.WordExtractor;
- public class WordReader {
- public WordReader(){
- }
- /**
- * @param filePath 文件路径
- * @return 读出的Word的内容
- */
- public String getTextFromWord(String filePath){
- String result = null;
- File file = new File(filePath);
- try{
- FileInputStream fis = new FileInputStream(file);
- WordExtractor wordExtractor = new WordExtractor(fis);
- result = wordExtractor.getText();
- }catch(FileNotFoundException e){
- e.printStackTrace();
- }catch(IOException e){
- e.printStackTrace();
- };
- return result;
- }
- }
EXCEL
- package textReader;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.hssf.usermodel.HSSFSheet;
- import org.apache.poi.hssf.usermodel.HSSFRow;
- import org.apache.poi.hssf.usermodel.HSSFCell;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- public class ExcelReader {
- @SuppressWarnings("deprecation")
- /**
- * @param filePath 文件路径
- * @return 读出的Excel的内容
- */
- public String getTextFromExcel(String filePath) {
- StringBuffer buff = new StringBuffer();
- try {
- //创建对Excel工作簿文件的引用
- HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(filePath));
- //创建对工作表的引用。
- for (int numSheets = 0; numSheets < wb.getNumberOfSheets(); numSheets++) {
- if (null != wb.getSheetAt(numSheets)) {
- HSSFSheet aSheet = wb.getSheetAt(numSheets);//获得一个sheet
- for (int rowNumOfSheet = 0; rowNumOfSheet <= aSheet.getLastRowNum(); rowNumOfSheet++) {
- if (null != aSheet.getRow(rowNumOfSheet)) {
- HSSFRow aRow = aSheet.getRow(rowNumOfSheet); //获得一个行
- for (int cellNumOfRow = 0; cellNumOfRow <= aRow.getLastCellNum(); cellNumOfRow++) {
- if (null != aRow.getCell(cellNumOfRow)) {
- HSSFCell aCell = aRow.getCell(cellNumOfRow);//获得列值
- switch(aCell.getCellType()){
- case HSSFCell.CELL_TYPE_FORMULA:
- break;
- case HSSFCell.CELL_TYPE_NUMERIC:
- buff.append(aCell.getNumericCellValue()).append('\t');break;
- case HSSFCell.CELL_TYPE_STRING:
- buff.append(aCell.getStringCellValue()).append('\t');break;
- }
- }
- }
- buff.append('\n');
- }
- }
- }
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return buff.toString();
- }
- }
- package textReader;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import org.pdfbox.pdfparser.PDFParser;
- import org.pdfbox.pdmodel.PDDocument;
- import org.pdfbox.util.PDFTextStripper;
- public class PdfReader {
- public PdfReader(){
- }
- /**
- * @param filePath 文件路径
- * @return 读出的pdf的内容
- */
- public String getTextFromPdf(String filePath) {
- String result = null;
- FileInputStream is = null;
- PDDocument document = null;
- try {
- is = new FileInputStream(filePath);
- PDFParser parser = new PDFParser(is);
- parser.parse();
- document = parser.getPDDocument();
- PDFTextStripper stripper = new PDFTextStripper();
- result = stripper.getText(document);
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (is != null) {
- try {is.close();}catch(IOException e){e.printStackTrace();}
- }
- if (document != null) {
- try{document.close();}catch (IOException e){e.printStackTrace();}
- }
- }
- return result;
- }
- }
TXT
- package textReader;
- import java.io.*;
- public class TxtReader {
- public TxtReader() {
- }
- /**
- * @param filePath 文件路径
- * @return 读出的txt的内容
- */
- public String getTextFromTxt(String filePath) throws Exception {
- FileReader fr = new FileReader(filePath);
- BufferedReader br = new BufferedReader(fr);
- StringBuffer buff = new StringBuffer();
- String temp = null;
- while((temp = br.readLine()) != null){
- buff.append(temp + "\r\n");
- }
- br.close();
- return buff.toString();
- }
- }
RTF
- package textReader;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import javax.swing.text.BadLocationException;
- import javax.swing.text.DefaultStyledDocument;
- import javax.swing.text.rtf.RTFEditorKit;
- public class RtfReader {
- public RtfReader(){
- }
- /**
- * @param filePath 文件路径
- * @return 读出的rtf的内容
- */
- public String getTextFromRtf(String filePath) {
- String result = null;
- File file = new File(filePath);
- try {
- DefaultStyledDocument styledDoc = new DefaultStyledDocument();
- InputStream is = new FileInputStream(file);
- new RTFEditorKit().read(is, styledDoc, 0);
- result = new String(styledDoc.getText(0,styledDoc.getLength()).getBytes("ISO8859_1"));
- //提取文本,读取中文需要使用ISO8859_1编码,否则会出现乱码
- } catch (IOException e) {
- e.printStackTrace();
- } catch (BadLocationException e) {
- e.printStackTrace();
- }
- return result;
- }
- }
HTML
- package textReader;
- import java.io.*;
- public class HtmlReader {
- public HtmlReader() {
- }
- /**
- * @param filePath 文件路径
- * @return 获得html的全部内容
- */
- public String readHtml(String filePath) {
- BufferedReader br=null;
- StringBuffer sb = new StringBuffer();
- try {
- br=new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "GB2312"));
- String temp=null;
- while((temp=br.readLine())!=null){
- sb.append(temp);
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return sb.toString();
- }
- /**
- * @param filePath 文件路径
- * @return 获得的html文本内容
- */
- public String getTextFromHtml(String filePath) {
- //得到body标签中的内容
- String str= readHtml(filePath);
- StringBuffer buff = new StringBuffer();
- int maxindex = str.length() - 1;
- int begin = 0;
- int end;
- //截取>和<之间的内容
- while((begin = str.indexOf('>',begin)) < maxindex){
- end = str.indexOf('<',begin);
- if(end - begin > 1){
- buff.append(str.substring(++begin, end));
- }
- begin = end+1;
- };
- return buff.toString();
- }
- }
相关推荐
PHPWord,可以自动生成doc文档,比如用户在web上输入信息,点击下载,即可根据用户的选择生成对应的文档,以供用户下载。
范例4-1-1 Opencv读取写入练习 79 范例4-1-2 Opencv读取影像并显示至视窗 81 范例4-1-3 Opencv读取影像显示至视窗-版本2 84 范例4-1-4影像储存压缩品质选择 87 范例4-2-1 Opencv使用webcam拍照,并存放置资料匣 89 ...
此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这...
缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...
1.6 几种开发工具的介绍 20 1.6.1 Vi及Vim 20 1.6.2 Eclipse+PHPEclipse插件 21 1.6.3 UltraEdit 21 1.6.4 EditPlus 22 1.6.5 支持PHP的IDE环境 22 1.7 小结 23 第2章 PHP的基础语法 24 2.1 语言构成与工作原理 24 ...
缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...
actionScript 3.0开发人员指南中文版,总共67章,955页。学习actionScript不错的书籍。 目录: 目录 第章:使用日期和时间 管理日历日期和时间 控制时间间隔 日期和时间示例:简单模拟时钟 第章:使用字符串 字符串...
cc实例227 对SQLcServer数据库进行录入和存储Word文档 8.10 数据备份恢复 cc实例228 Access数据库备份与还原 cc实例229 SQLcServer数据库备份与恢复 cc实例230 定时数据备份 8.11 其他...
8.8 数据库结构的读取与修改 cc实例223 读取Access数据库结构 cc实例224 读取SQLcServer数据库结构 8.9 图片.c多媒体数据录入技术 cc 实例225 对Access数据库进行录入和提取图片 cc实例226 对SQLServer...
执行 读取 脚本 写入 存放在外存上的数据,________。 CPU可直接访问 关机后会丢失 CPU访问前必须先装入内存 是高速缓冲存储器中的信息 在OSI七层结构模型中,最低层是________。 会话层 表示层 物理层 网络层 能...
cc实例227 对SQLcServer数据库进行录入和存储Word文档 8.10 数据备份恢复 cc实例228 Access数据库备份与还原 cc实例229 SQLcServer数据库备份与恢复 cc实例230 定时数据备份 8.11 其他...
一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...
一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...
缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...
缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...
NTKO OFFICE文档控件能够在浏览器窗口中直接编辑Word,Excel,Wps等Office文档并保存到任意Web服务器。实现文档和电子表格的统一管理。同时支持强制痕迹保留,手写签名,电子印章,版本控制,附件上传等办公自动化系统...