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();
}

}

转载于:https://www.cnblogs.com/candl/p/3592649.html

java读取各类型的文件相关推荐

  1. Java读取UTF-8格式txt文件第一行出现乱码及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法(转载)...

    原文地址:http://blog.csdn.net/jackpk/article/details/5702964/ Java读取UTF-8的txt文件第一行出现乱码"?"及解决 t ...

  2. 杂记(1)java读取char类型2. 大小写字母的转换3. 字符串的拼接4. 一串数字排序

    1. java读取char类型 应为java中没有nextchar();函数,所以只能先读取一行,即 Sting a=sc.nextline(); char need=a.charAt(0);//取字 ...

  3. Java读取Level-1行情dbf文件极致优化(2)

    最近架构一个项目,实现行情的接入和分发,需要达到极致的低时延特性,这对于证券系统是非常重要的.接入的行情源是可以配置,既可以是Level-1,也可以是Level-2或其他第三方的源.虽然Level-1 ...

  4. java读取并修改xml文件

    java读取并修改xml文件 java如何读取xml并且修改xml文件呢?代码如下: //复制模板xnl File file = new File(xmlSavePath + "/mb.xm ...

  5. java读取resouces目录下文件

    resources中存放一些个资源文件,比如properties文件等,编译好会自动将这里边的文件复制到target/classes里去.获取资源文件的方法说明: XXX.class.getResou ...

  6. java 读取hdfs上的文件内容

    用java读取hdfs的文件 直接撸代码: package com.nature.base.util;import com.nature.component.process.vo.DebugDataR ...

  7. java读取字符串,生成txt文件

    /*** 读取字符串,生成txt 文件 已解决未设置编码时,在项目中直接打开文件,中文乱码问题* WriteText.writeToText(musicInfo,fileName)直接调用* * @a ...

  8. java读取mdb类型的数据

    1.总体说明 现在java读取mdb数据(也就是链接access数据库读取数据)对jdk的版本有要求,jdk1.8以前的可以直接链接access数据 库读取数据,而jdk1.8以后的都需要加载一个连接 ...

  9. java解析各种文档格式_java读取各类型的文件

    用到的几个包 bcmail-jdk14-132.jar/bcprov-jdk14-132.jar/checkstyle-all-4.2.jar/FontBox-0.1.0-dev.jar/lucene ...

最新文章

  1. 1008: [HNOI2008]越狱(计数问题)
  2. 数据结构树的基本操作_《数据结构》树的基本操作.doc
  3. php页面生成耗时分析
  4. win7系统怎么拷贝到u盘_win7/10系统复制文件到u盘提示文件过大怎么办
  5. 开工第一天,老板补发年终奖,一箱18元的冰棍
  6. 2D Fast Marching Computations
  7. java中ant是干什么的_java_ant详解
  8. 别再用 Visio 了!试试这个比它快 10 倍的画图工具不香吗?
  9. 全国电子设计大赛资料打包网盘10G
  10. Permute3 mac最新多种媒体视频格式转换工具
  11. [原创]分布光纤测温DTS产品在市场上两种主流产品架构的区别与对比-未来趋势必然向单板化方向发展
  12. sql 验证身份证号码
  13. Matlab中isequal函数的使用
  14. 给一整型变量a,写两段代码,第一个设置a的bit3,第二个清除a的bit3.“a的bit3”
  15. 邹城机器人产业园出租_华丰机器人产业园写字楼出租出售租赁出租我们是专
  16. 多数据中心架构,异地多活架构
  17. 工作邮件的若干注意事项
  18. K近邻算法应用——价格预测
  19. Android实现车辆检测(含Android源码 可实时运行)
  20. spss为什么有python插件_为什么数据分析会用 Python

热门文章

  1. 250分b区计算机专硕,2021兰州大学研究生复试分数线
  2. ue4账号注册不了_英雄联盟手游拳头账号注册
  3. php word 数学公式,如何在word中输入复杂的数学公式? 详细始末
  4. java 如何添加背景音乐_Java程序怎样添加背景音乐?
  5. linux脚本定时执行,Shell脚本实现每个工作日定时执行指定程序
  6. lua 函数 默认值_Unity热更新框架之xLua
  7. Python循环遍历(cycle)
  8. c语言z基本数据类型文档,C语言基本数据类型
  9. ruby dbi mysql_Ruby DBI Read 操作 | 菜鸟教程
  10. 中兴手机数据通道打不开_换了个新手机