`
Lvan
  • 浏览: 791 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

常用文件转换为txt文本

阅读更多

先贴代码:


import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;

import org.apache.poi.hssf.usermodel.*;
import org.textmining.text.extraction.WordExtractor;

public class Doc2Text {

public static String Word2Text(String fileName) {

String str = "";
FileInputStream in = null;
try {
in = new FileInputStream(fileName);
WordExtractor extractor = new WordExtractor();
str = extractor.extractText(in);

} catch(FileNotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch(Exception e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} finally {
try {
in.close();
} catch(IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
return str;
}

public static String Excel2Text(String filename) {

String text = "";
FileInputStream fis = null;
try {
int sheetnum = 0;
HSSFSheet sheet = null;
HSSFRow row = null;
fis = new FileInputStream(filename);
HSSFWorkbook workbook = new HSSFWorkbook(fis);
for(sheetnum = 0; sheetnum < workbook.getNumberOfSheets(); sheetnum++) {
sheet = workbook.getSheetAt(sheetnum);
int lastrow = 0;
int rownum = 0;
lastrow = sheet.getLastRowNum();
for(rownum = 0; rownum < lastrow; rownum++) {
row = sheet.getRow(rownum);
if(row != null) {
short firstcell = row.getFirstCellNum();
short lastcell = row.getLastCellNum();
short cellnum;
HSSFCell cell = null;
for(cellnum = firstcell; cellnum < lastcell; cellnum++) {
cell = row.getCell(cellnum);
if(cell != null && cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
text = text + cell.getNumericCellValue() + "\t";
else
if(cell != null && cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
text = text + cell.getStringCellValue() + "\t";
}
}
text = text + "\n";
}
}
}
} catch(Exception e) {
System.out.println(e);
} finally {
try {
fis.close();
} catch(Exception e) {
// TODO: handle exception

}
}
return text;
}

public static String Txt2Text(String fileName) {

StringBuffer buffer = new StringBuffer();
;
BufferedReader reader = null;
InputStream is = null;
try {
is = new FileInputStream(fileName);
String line; // 用来保存每行读取的内容

if(getEncode(is).equals("UTF-8"))
reader = new BufferedReader(new InputStreamReader(is, "utf-8"));
// else if(getEncode(is).equals("Unicode"))
// reader = new BufferedReader(new InputStreamReader(is,"ISO-8859-1"));
else
reader = new BufferedReader(new InputStreamReader(is));

line = reader.readLine(); // 读取第一行
while(line != null) { // 如果 line 为空说明读完了
buffer.append(line); // 将读到的内容添加到 buffer 中
buffer.append("\n"); // 添加换行符
line = reader.readLine(); // 读取下一行
}

} catch(FileNotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch(IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} finally {
try {
is.close();
reader.close();
} catch(Exception e) {
// TODO: handle exception

}
}
return new String(buffer);
}

private static String getEncode(InputStream fileStream) {

try {
int[] fileFormat = new int[3];
int index = 0;
int data = fileStream.read();
while(data != -1) {
fileFormat[index] = data;
// System.out.println("data = "+data);
index++;
if(index >= 3)
break;
data = fileStream.read();
}

if(fileFormat[0] == 239 && fileFormat[1] == 187 && fileFormat[2] == 191)
return "UTF-8";
// else if(fileFormat[0]==255 && fileFormat[1]==254)
// return "Unicode";
// else
return "default";
} catch(IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
return "default";
}
}

public String Pdf2Text(String fileName) {//未测试成功,有BUG

String ts = "";
BufferedInputStream bis = null;
InputStreamReader reader = null;
try {
String PATH_TO_XPDF = "D:\\pdftotext.exe";
String[] cmd = new String[] {PATH_TO_XPDF, "-enc", "UTF-8", "-q", fileName, "-"};
Process p = Runtime.getRuntime().exec(cmd);
bis = new BufferedInputStream(p.getInputStream());
reader = new InputStreamReader(bis, "UTF-8");
StringWriter out = new StringWriter();
char[] buf = new char[10000];
int len;
while((len = reader.read(buf)) >= 0) {
// out.write(buf, 0, len);
System.out.println("the length is" + len);
}
reader.close();
ts = new String(buf);
// System.out.println("the str is"+ts);
} catch(UnsupportedEncodingException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch(IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} finally {
try {
bis.close();
reader.close();
} catch(Exception e) {
// TODO: handle exception

}
}
return ts;
}

public static void main(String[] args) {

Doc2Text d = new Doc2Text();
System.out.println(d.Txt2Text("D:\\wap经验总结1.txt"));
// System.out.println(d.Txt2Text("D:\\WAP技术参考.doc"));
// System.out.println(d.Excel2Text("D:\\测试.xls"));
}
}

 注:上面需要加入相关的jar包:poi-3.0-alpha3-20061212.jar,tm-extractors-0.4.jar;

 

另外:对于word中的图片直接丢弃,表格线等显示有可能为乱码;欢迎各位大大批评指正,为谢!

分享到:
评论

相关推荐

    Shp矢量文件坐标转换及Shp转txt文本工具

    "Shp矢量文件坐标转换及Shp转txt文本工具" 提供了将Shp文件中的坐标数据转换成txt文本文件的功能,并支持通过四参数法进行坐标转换。 四参数转换法是一种常用的坐标转换方法,它通过四个参数(X轴平移、Y轴平移、X...

    acrgis坐标txt文本转shape插件

    本话题涉及的是一个名为“acrgis坐标txt文本转shape插件”的工具,这个插件主要用于将包含地理坐标信息的TXT文本文件转换为SHAPE格式,SHAPE文件是GIS领域中常用的数据存储格式,它能够保存空间几何对象和相关属性。...

    点云pcd与txt之间的转换

    - ASCII与二进制模式下的PCD文件转换需特别留意,因为二进制数据需要解码后才能正确转换成TXT格式。 - 在处理大量点云数据时,内存管理和效率优化是关键,避免一次性加载整个点云到内存。 总结来说,PCD与TXT文件...

    可以将PDF等其他格式的文件转换成TXT格式

    PDF和其他格式文件转换成...总之,将PDF等格式文件转换为TXT格式是处理文本数据的常用步骤,它依赖于各种工具和技术,包括专门的软件、命令行工具以及API。在选择转换方法时,应根据具体需求考虑效率、准确性及安全性。

    常用字替换TXT文本.txt

    根据提供的文件信息,我们可以推断出此文档主要关注的是“常用字替换”这一主题,而具体到TXT文本处理上。由于实际的内容链接无法直接访问,我们只能基于标题、描述、标签来推测文档的大致内容,并从中提取出相关...

    将视频文件转换为文本的转换器

    在IT领域,将视频文件转换为文本是一种常见的需求,尤其在自动字幕生成、内容提取、视频转文字记录等方面。本文将深入探讨“将视频文件转换为文本的转换器”这一主题,包括其工作原理、相关技术以及如何利用提供的...

    CSV文件转换器(转TXT/Excel等格式).rar

    Advanced CSV Converter是一款CSV文件转换工具,它能够将CSV文件转换为TXT/HTM/XLS/EXCEL XML/DBF等格式文件。首先选择要转换的CSV文件,或带有CSV文件的文件夹,选择转换后的保存位置,下一步后,设置转换常用...

    UTF-8转ANSI文本文件转换器

    "UTF-8转ANSI文本文件转换器"就是这样一个工具,它能够帮助用户批量将UTF-8编码的文本文件转换为ANSI编码的文本文件。在此,我们将深入探讨UTF-8和ANSI编码的原理以及转换过程中涉及的关键知识点。 **一、UTF-8编码...

    一个好用的文本文件编码转换器

    文本文件,通常以.txt为扩展名,是计算机存储信息的基本形式之一。它们包含可读的字符,如字母、数字和符号,这些字符通过特定的编码方式来表示。与二进制文件不同,文本文件的内容可以直接在文本编辑器中查看和修改...

    Excel文档转换为文本文件

    手动操作通常适用于单次或少量文件转换,步骤包括打开Excel文件,选择要导出的sheet,然后使用“文件”菜单中的“另存为”选项,选择“文本(逗号分隔)(*.txt)”或“Unicode文本(*.txt)”格式进行保存。这种方法...

    TXT 转 SRT 字幕

    TXT格式的字幕通常是纯文本文件,包含了逐行的对话内容,但不包含时间轴信息。这种格式简洁,易于编辑,但不便于与视频同步。相比之下,SRT(SubRip Subtitle)是一种带有时间轴信息的字幕格式,它能够精确地控制...

    将源文件读入matlab后二进制输出到文本文件

    最常用的是`load`函数,用于加载.mat文件,或者`textread`和`csvread`,用于读取文本或CSV文件。例如,如果你的源文件是一个文本文件,可以使用`textread`: ```matlab data = textread('sourcefile.txt', '%s', ...

    scel转换txt工具.7z

    "scel转换txt工具.7z"是一个压缩包,其中包含了一个或多个程序,这些程序设计用于将SCEL格式的词库文件转换为更通用的TXT文本文件。TXT文件通常包含纯文本,易于阅读和编辑,可以在大多数文本编辑器中打开,而无需...

    易语言记事本txt文本文件导入access数据库

    在这个场景中,我们关注的是如何使用易语言(E语言)将记事本中的TXT文本文件内容导入到Access数据库中。易语言是一种面向对象、简单易学的编程语言,而Access则是一款常用的轻量级数据库管理系统,常用于个人或小型...

    txt文件编码批量转换器V2.11版

    通过txt文件编码批量转换器,你可以快速的完成多个txt文件编码的转换,而且该转换器可以转换的编码不只是unicode,还有utf-8等常用编码格式。该转换器采用文件流读取写入方式,尽量保持了文件的正确无误;并采用了多...

    将VB格式文件转换为Unix格式文件

    要将VB格式文件转换为Unix格式文件,我们需要了解以下几个关键知识点: 1. 行结束符差异: - Windows(DOS):使用CRLF(\r\n)作为一行的结束。 - Unix/Linux:仅使用LF(\n)作为一行的结束。 - Mac OS ...

    常用字字典--文本文件

    在IT领域,文本文件是数据存储与传输的基本形式之一,其中“常用字字典--文本文件”这一主题涉及了字符编码、字典结构以及文本处理技术等关键知识点。以下是对这些核心概念的深入探讨。 ### 字符编码 字符编码是...

    文本TXT电子书转换软件

    文本TXT电子书转换软件是一种工具,它允许用户将多种不同的电子书格式转换为TXT格式,这是一种通用且易于阅读的文本格式。这样的软件通常具有简洁的界面和强大的功能,旨在简化电子书格式转换的过程,使用户能够更...

    bin文件转换成十六进制数组

    "bin文件转换成十六进制数组"这个主题是关于将二进制数据转化为更适合编程和烧录的十六进制表示。这种转换对于嵌入式系统开发、固件更新、微控制器编程等工作尤为重要。 首先,我们要理解bin文件的性质。BIN是二...

    txt转换wav工具

    该工具允许用户将TXT格式的纯文本文件转换成WAV音频文件,以便于听觉上获取信息,尤其适用于有视力障碍的人群,或者在不方便阅读但可以听的情况下使用。 TTS系统主要由以下几个核心组件构成: 1. **文本分析**:这...

Global site tag (gtag.js) - Google Analytics