java读取各类型的文件
java读取各类型的文件
用到的几个包
bcmail-jdk14-132.jar/bcprov-jdk14-132.jar/checkstyle-all-4.2.jar/FontBox-0.1.0-dev.jar/lucene-core-2.0.0.jar/PDFBox-0.7.3.jar/poi-3.0-alpha3-20061212.jar/poi-contrib-3.0-alpha3-20061212.jar/poi-scratchpad-3.0-alpha3-20061212.jar
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import org.apache.poi.hslf.HSLFSlideShow;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.model.TextRun;
import org.apache.poi.hslf.usermodel.SlideShow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Paragraph;
import org.apache.poi.hwpf.usermodel.Range;
import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.util.PDFTextStripper;
public class Test {
/**
* @param args
*/
public static void p(Object obj) {
System.out.println(obj);
}
public static void main(String[] args) {
try {
p(readPpt("src/1.dps"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//读取ppt
public static String readPpt(String path) throws Exception {
StringBuffer content = new StringBuffer("");
try {
SlideShow ss = new SlideShow(new HSLFSlideShow(path));// path为文件的全路径名称,建立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(ex.toString());
}
return content.toString().trim();
}
// 读取xls
public static String readXls(String path) throws Exception {
StringBuffer content = new StringBuffer("");// 文档内容
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(path));
int sheetCount = workbook.getNumberOfSheets();// excel几张表
for (int i = 0; i < sheetCount; i++) {// 遍历excel表
HSSFSheet sheet = workbook.getSheetAt(i);// 对excel的第一个表引用
int rowCount = sheet.getLastRowNum();// 取得最后一行的下标
for (int j = 0; j < rowCount; j++) {// 循环每一行
HSSFRow row = sheet.getRow(j);// 引用行
if (row == null) {
continue;
} else {
short cellNum = row.getLastCellNum();
for (short m = 0; m < cellNum; m++) {
HSSFCell cell = row.getCell(m);// 引用行中的一个单元格
if (cell != null) {
int cellType = cell.getCellType();
// CELL_TYPE_NUMERIC 0 数字
// CELL_TYPE_STRING 1 字符串
// CELL_TYPE_FORMULA 2 公式
// CELL_TYPE_BLANK 3 空格
// CELL_TYPE_BOOLEAN 4 布尔值
// CELL_TYPE_ERROR 5 错误
switch (cellType) {
// 单元格类型为数字
case HSSFCell.CELL_TYPE_NUMERIC:
// 取数字单元格的值
double d = cell.getNumericCellValue();
content.append(String.valueOf(d) + " ");
break;
// 单元格类型为字符串
case HSSFCell.CELL_TYPE_STRING:
String str = cell.getStringCellValue().trim();
if (!str.equals("")) {
content.append(str + " ");
}
break;
// 单元格类型为公式
case HSSFCell.CELL_TYPE_FORMULA:
// 不读取公式
// String formula = cell.getCellFormula();
// content = content + formula+" ";
break;
// 单元格类型为空白
case HSSFCell.CELL_TYPE_BLANK:
break;
// 单元格类型为布尔值
case HSSFCell.CELL_TYPE_BOOLEAN:
// boolean bool = cell.getBooleanCellValue();
// content = content + bool+" ";
break;
// 单元格类型为错误
case HSSFCell.CELL_TYPE_ERROR:
// byte errorCode = cell.getErrorCellValue();
// content = content + errorCode+" ";
break;
default:
break;
}
} else {
// content = content + "..." +" ";//没有数据的单元格使用...填充
}
}
}
content.append("\r");
}
}
return content.toString().trim();
}
// 读取pdf
public static String readPdf(String path) throws Exception {
StringBuffer content = new StringBuffer("");// 文档内容
FileInputStream fis = new FileInputStream(path);
PDFParser p = new PDFParser(fis);
p.parse();
PDFTextStripper ts = new PDFTextStripper();
content.append(ts.getText(p.getPDDocument()));
fis.close();
return content.toString().trim();
}
// 读取word,只能读取文本内容 图片不行
public static String readWord(String path) throws Exception {
StringBuffer content = new StringBuffer("");// 文档内容
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());
}
return content.toString().trim();
}
// 读取text
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) {
e.printStackTrace();
}
return content.toString().trim();
}
}
java读取各类型的文件的更多相关文章
- Java读取Level-1行情dbf文件极致优化(3)
最近架构一个项目,实现行情的接入和分发,需要达到极致的低时延特性,这对于证券系统是非常重要的.接入的行情源是可以配置,既可以是Level-1,也可以是Level-2或其他第三方的源.虽然Level-1 ...
- Java读取Level-1行情dbf文件极致优化(2)
最近架构一个项目,实现行情的接入和分发,需要达到极致的低时延特性,这对于证券系统是非常重要的.接入的行情源是可以配置,既可以是Level-1,也可以是Level-2或其他第三方的源.虽然Level-1 ...
- Java读取并下载网络文件
CreateTime--2017年8月21日10:11:07 Author:Marydon import java.io.ByteArrayOutputStream; import java.io ...
- Java显示指定类型的文件
文件作为存储数据的单元,会根据数据类型产生很多分类,也就是所谓的文件类型.在对数据文件进行操作时,常常需要根据不同的文件类型来作不同的处理.本实例实现的是读取文件夹指定类型的文件并显示到表格控件中.这 ...
- Java读取CSV和XML文件方法
游戏开发中,读取策划给的配置表是必不可少的,我在之前公司,策划给的是xml表来读取,现在公司策划给的是CSV表来读取,其实大同小异,也并不是什么难点,我就简单分享下Java如何读取XML文件和CSV文 ...
- java读取数据写入txt文件并将读取txt文件写入另外一个表
package com.xsw.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.F ...
- java读取UTF-8的txt文件发现开头的一个字符问题
今天遇到一个奇葩问题,在读取一个TXT文件时,出现开头多了一个问号(?).如下图: 莫名奇妙的多了一个.最后通过网上资料,知道在Java中,class文件采用utf8的编码方式,JVM运行时采用utf ...
- Java 读取jar内的文件的超简便方法
坑爹的java课程设计,偏要用jar来运行 读取.存储jar内文件的支持也好低 存储方法: 进入jar文件其实没有说的那么困难,jar文件本质是一个zip格式的压缩文件,只是把文件后缀名改了,要用Ja ...
- Java——读取和写入txt文件
package com.java.test.a; import java.io.BufferedReader; import java.io.BufferedWriter; import java.i ...
随机推荐
- 未完全关闭数据库导致ORA-01012: not logged的解决
首先使用SHUTDOWN 没加任何参数方式关闭数据库,在数据库未关闭时CTRL+Z停止执行,退出用SQLPLUS重登陆,出现报错:ORA-01012: not logged on SQL> st ...
- MSP430F149学习之路——PWM信号
代码一: /******************************* 程序功能:ACLK=32768Hz PWM波 T=512/32768 占空比75% ******************** ...
- django中添加用户
在django中添加用户,直接在auth_user表中添加会有问题,因为这里密码是加密的,可以通过manage.py shell加入 创建User: 1 >>> from djang ...
- php中未定义变量的使用
在php中,若变量$test没有定义,则: empty($test)返回true: !empty($test)返回false: 具体可参考http://www.jb51.net/article/246 ...
- HiveSQL解析过程详解 | 学步园
HiveSQL解析过程详解 | 学步园 http://www.xuebuyuan.com/2210261.html
- Windows phone 8 学习笔记(3) 通信(转)
Windows phone 8 可利用的数据通信方式比较广泛,在硬件支持的前提下,我们可以利用WiFi.蓝牙.临近感应等多种方式.数据交互一般通过套接字来完成,我们将在本文详细的分析. 快速导航:一. ...
- Does FTK index search support regular expression?
Some of my friends ask me a question: "Does FTK index search support regular expression?" ...
- mysql在生产环境下有大量锁表,又不允许重启的情况下的处理办法
mysql在生产环境下有大量锁表,又不允许重启的情况下的处理办法 满头大汗的宅鸟该怎么办呢? mysql -u root -e "show processlist"|grep -i ...
- ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)
解决Can't connect to MySQL server on 'localhost' tomcat连接mysql,大概是c3p0配置和mysql配置都有问题,导致了内存溢出,几天后,mysq ...
- WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (二)
WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (二) 编写人:CC阿爸 2015-1-29 今天我想与大家继续一起分享这一伟大的控件.有兴趣的同 ...