做之前,要下载pdfbox和poi插件,网上很多,很容找到,代码demo如下
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.log4j.Logger;
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 org.apache.poi.hslf.HSLFSlideShow;
import org.apache.poi.hslf.model.TextRun;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.usermodel.SlideShow;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Paragraph;
import org.apache.poi.hwpf.usermodel.Range;
import org.pdfbox.cos.COSDocument;
import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;
/**
* 读取各种文件的类
* 作用:用于读取各种文件的内容
* @author sang
*
*/
public class ReadFile {
private static final Logger log=Logger.getLogger(ReadFile.class);
public static void main(String args[]){
String path="D:\\temp\\106-113.p3.pdf";
String content=readPdf(path);
System.out.println(content);
System.out.println("****************************************************************************************");
log.info(content);
}
/* @author sang
* 读 word方法
* input param path 是文件路径
* output param content 读取的文件内容
*/
public static String readWord(String path) {
StringBuffer content = new StringBuffer("");// 文档内容
try {
HWPFDocument doc = new HWPFDocument(new FileInputStream(path));
Range range = doc.getRange();
int paragraphCount = range.numParagraphs();// 段落
for (int i = 0; i < paragraphCount; i++) {// 遍历段落读取数据
Paragraph pp = range.getParagraph(i);
content.append(pp.text());
}
} catch (Exception e) {
}
return content.toString().trim();
}
/* @author sang
* 读 pdf方法
* input param path 是文件路径
* output param content 读取的文件内容
*/
public static String readPdf(String path) {
StringBuffer content = new StringBuffer("");// 文档内容
FileInputStream fis;
try {
fis = new FileInputStream(path);
PDFParser p = new PDFParser(fis);
p.parse();
PDFTextStripper ts = new PDFTextStripper();
//org.fontbox.cmap.CMapParser
content.append(ts.getText(p.getPDDocument()));
p.getPDDocument().close();
fis.close();
} catch (Exception e) {
System.out.println("读取pdf文件出现异常");
e.printStackTrace();
}
return content.toString().trim();
}
/*
* 读取PDF 方法2
*/
public static String readpaffile(String path) {
String docText = null;
PDFParser parser;
try {
parser = new PDFParser(new FileInputStream(new File(path)));
parser.parse();
COSDocument cosdoc = parser.getDocument();
PDFTextStripper stripper = new PDFTextStripper();
docText = stripper.getText(new PDDocument(cosdoc));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return docText.trim();
}
/* @author sang
* 读html
* input param urlString 是文件路径
* output param contentString 读取的文件内容
*/
public static String readHtml(String urlString) {
StringBuffer content = new StringBuffer("");
File file = new File(urlString);
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
// 读取页面
BufferedReader reader = new BufferedReader(new InputStreamReader(
fis, "GBK"));//这里的字符编码要注意,要对上html头文件的一致,否则会出乱码
String line = null;
while ((line = reader.readLine()) != null) {
content.append(line + "\n");
}
reader.close();
} catch (Exception e) {
System.out.println("读取html出现异常");
}
String contentString = content.toString();
return contentString;
}
/* @author sang
* 读txt
* input param path 是文件路径
* output param content 读取的文件内容
*/
public static String readTxt(String path) {
StringBuffer content = new StringBuffer("");// 文档内容
try {
FileReader reader = new FileReader(path);
BufferedReader br = new BufferedReader(reader);
String s1 = null;
while ((s1 = br.readLine()) != null) {
content.append(s1 + "\r");
}
br.close();
reader.close();
} catch (IOException e) {
System.out.println("读取txt出现异常");
}
return content.toString().trim();
}
/* @author sang
* 读ppt
* input param url 是文件路径
* output param content 读取的文件内容
*/
public static String ReadPPt(String url) throws Exception {
StringBuffer content = new StringBuffer("");
try {
SlideShow ss = new SlideShow(new HSLFSlideShow(new FileInputStream(
url)));//is 为文件的InputStream,建立SlideShow
Slide[] slides = ss.getSlides();//获得每一张幻灯片
for (int i = 0; i < slides.length; i++) {
TextRun[] t = slides[i].getTextRuns();//为了取得幻灯片的文字内容,建立TextRun
for (int j = 0; j < t.length; j++) {
content.append(t[j].getText());//这里会将文字内容加到content中去
}
content.append(slides[i].getTitle());
}
} catch (Exception ex) {
System.out.println("读取ppt异常:" + ex.toString());
}
return content.toString();
}
/* @author sang
* 读excel
* input param url 是文件路径
* output param content 读取的文件内容
*/
public static String ReadExcel(String url) throws Exception {
StringBuffer content = new StringBuffer();
try {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(url));//创建对Excel工作簿文件的引用
for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) {
if (null != workbook.getSheetAt(numSheets)) {
HSSFSheet aSheet = workbook.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);//获得列值
content.append(aCell.getStringCellValue());
}
}
}
}
}
}
} catch (Exception e) {
System.out.println(" 读取excel异常 : " + e);
}
return content.toString();
}
}
分享到:
相关推荐
包含一系列示例代码,针对Windows系统中常见的文件操作,包括同步/异步读写,实现语言包括c++/c#/VB.
内容概要: 本文全面介绍了Python文件操作的相关...建议由浅入深学习,首先了解基础概念,然后学习API的使用,在掌握基础后结合示例代码学习各种文件的进阶处理技巧,最后针对实际需求进行练习,将文件操作运用到实际场景中。
使用场景及目标以实际应用为导向,通过详细的代码示例和解析,帮助读者在实际编程中灵活运用文件操作。例如,在开发数据处理软件、日志系统、配置文件读写等场景中,本资源的内容将发挥重要作用。学习本资源后,你将...
内容概要: 本课件首先介绍了C语言中的文件操作,包括打开、写入、读取文件,并给出了...重点学习文件操作部分的读写方法,并针对示例代码进行实践。宏部分也需要掌握各种预处理技巧。本课件内容实用,是学习C语言的好教材。
通过本文及配套示例源码你可以更加灵活的控制Excel表格文件,其中包括创建新Excel文件、写入表格数据、读取表格数据(包括对原建Excel文件自已手工添加的行、列数据的准确读取),删除已有Excel表格,对表格中指定行、...
多年收藏的Delphi资源,主要针对文件操作的相关代码资源,共计80个示例。
该存储库旨在提供跨多种语言的各种应用程序的代码示例样本。 内容 空中机器人: 该目录用C ++编写,包含一个虚拟数据提供程序和一个由Texas Aero Robotics使用的线性回归计算器。 这里提供的示例不是当前正在使用的...
如果考虑到操作系统作为软硬件桥梁的特殊地位,那么它可能看上去比一般的软件系统更难理解,因为其核心部分往往包含许多直接针对CPU、内存和 I/O端口的操作,它们夹杂在一片代码汪洋之中,显得更加晦涩。 我们有许多...
如果考虑到操作系统作为软硬件桥梁的特殊地位,那么它可能看上去比一般的软件系统更难理解,因为其核心部分往往包含许多直接针对CPU、内存和 I/O端口的操作,它们夹杂在一片代码汪洋之中,显得更加晦涩。 我们有许多...
可以先了解Python游戏开发的基本框架,然后针对课程的代码示例进行逐行学习,并在编辑器中试验运行。在学习贪吃蛇游戏案例时,可以边阅读代码边思考游戏规则的实现。最后还可以试着修改代码来实现自己的小游戏。总体来...
我们将通过Apache POI库来实现这一功能,并解释其背后的原理、提供完整的流程和步骤,以及带有详细注释的代码示例。最终,读者将能够轻松地将自己的列表数据导出为Excel文件。 Apache POI是一个流行的Java库,用于...
本文是一篇针对初学者的C语言入门教程,通过使用简单、口语化的语言和代码示例,介绍了C语言的基础知识,包括变量、数据类型、运算、条件语句、循环、函数、数组、指针、结构体、动态内存分配和文件操作等核心概念。...
附加资源:示例Markdown文档、MATLAB源代码文件 注意事项:用户需要安装MATLAB软件,并具备基本的MATLAB编程知识。在运行示例代码之前,请确保将MATLAB源代码文件与相关数据文件放置在同一目录下
前言 ... 并不能使用PDO扩展本身执行...最近在做项目时用到了PDO操作mysql数据库,于是自己写了一个类文件,命名为mysql_class.php文件代码如下: 示例代码 <?php class mysql{ //常量声明 const DSN = "mysql:hos
源代码示例我们不但直接修改xcode项目配置达到增加(代码,资源),修改(代码,资源),从而针对过审客户有效避免2.3.1、4.3、2.1等协议 两种模式:一种是客户网站自助服务,一种是给客户发送客户端工具,两种的优...
针对xml文件的对于节点的 增删改查操作实例。代码写的有点糙,见谅。
提供了广泛的代码示例和项目示例。帮助你在新一代设备上熟练地开发创新的应用程序。 内容简介: 针对嵌入式设备的独特需求设计复杂的应用程序。 管理虚拟内存、堆和栈以减小程序的内存占用。 创建多线程进程...
提供了广泛的代码示例和项目示例。帮助你在新一代设备上熟练地开发创新的应用程序。 内容简介: 针对嵌入式设备的独特需求设计复杂的应用程序。 管理虚拟内存、堆和栈以减小程序的内存占用。 创建多线程进程...
提供了广泛的代码示例和项目示例。帮助你在新一代设备上熟练地开发创新的应用程序。 内容简介: 针对嵌入式设备的独特需求设计复杂的应用程序。 管理虚拟内存、堆和栈以减小程序的内存占用。 创建多线程进程...
Python基础入门50课程是一个针对初学者设计的Python编程学习课程,旨在帮助学习者从零开始掌握...辅助资源:除了课程视频或文档外,该课程还可能提供一些辅助资源,如代码示例、练习题答案和参考资料等,以便学习者更好