java解析文件内容|java解析word文档有哪些方法

java解析文件内容|java解析word文档有哪些方法的第1张示图

⑴ 如何通过java 读取.wps et及 dps文件格式的内容

下面是三个java例子,关于读取wps/et/dps的方法

1.读取wps(读取文本): 通过流加载wps文件,读取文字内容

import com.spire.doc.*;

import java.io.File;import java.io.FileInputStream;import java.io.FileWriter;import java.io.IOException;public class ReadTextFromWPS {public static void main(String[] args) throws IOException{//通过流加载WPS文字文档FileInputStream inputStream = new FileInputStream(new File("test.wps"));Document doc = new Document();doc.loadFromStream(inputStream, FileFormat.Doc);//获取文本保存为StringString text = doc.getText();//将String写入TxtwriteStringToTxt(text,"读取WPS文本.txt");}public static void writeStringToTxt(String content, String txtFileName) throws IOException {FileWriter fWriter= new FileWriter(txtFileName,true);try {fWriter.write(content);}catch(IOException ex){ex.printStackTrace();}finally{try{fWriter.flush();fWriter.close();} catch (IOException ex) {ex.printStackTrace();}}}}

2. 读取et:直接加载et格式的表格文件,读取数据

import com.spire.xls.*;public class ExcelToText {public static void main(String[] args) {//加载et格式的表格文件Workbook workbook = new Workbook();workbook.loadFromFile("test.et");//获取工作表Worksheet sheet = workbook.getWorksheets().get(0);//获取指定单元格中的文本数据CellRange range = sheet.getCellRange("A1");String text = range.getText().trim();System.out.println(text);}}

3.读取dps:直接加载dps格式的幻灯片文档,读取文本

import com.spire.presentation.IAutoShape;import com.spire.presentation.ISlide;import com.spire.presentation.ParagraphEx;import com.spire.presentation.Presentation;import java.io.FileWriter;public class ExtractText {public static void main(String[]args) throws Exception{//加载测试文档Presentation ppt = new Presentation();//ppt.loadFromFile("test.pptx");ppt.loadFromFile("test.dps");StringBuilder buffer = new StringBuilder();//遍历文档中的幻灯片,提取文本for (Object slide : ppt.getSlides()){for (Object shape : ((ISlide) slide).getShapes()){if (shape instanceof IAutoShape){for (Object tp : ((IAutoShape) shape).getTextFrame().getParagraphs()){buffer.append(((ParagraphEx) tp).getText());}}}}//保存到文本文件FileWriter writer = new FileWriter("ExtractTextfromDPS.txt");writer.write(buffer.toString());writer.flush();writer.close();}}

这里须在Java程序中导入spire.office.jar文件。

⑵ JAVA 解析txt文件。

如果txt文件里每一行都是一个属性的话,你一行一行读,然后取第一个indexOf("=")的位置,查找第一个版indexOf("{")和最后一个lastIndexOf("}")的位置,substring取内容权就好了吧。

⑶ 如何用java解析CSV文件

思想:先获取csv文件的路径,通过BufferedReader类去读该路径中的文件,使用readLine方法进行逐行读取。

注意:使用readLine方法后会自动转到下一行。因此在判断是否为空后得先将读取到的内容赋值给一变量,在循环中使用该变量即可。

publicstaticvoidmain(String[]args){Filecsv=newFile("C:\Users\chenxumin\Desktop\Result.csv");//CSV文件路径BufferedReaderbr=null;try{br=newBufferedReader(newFileReader(csv));}catch(FileNotFoundExceptione){e.printStackTrace();}Stringline="";StringeveryLine="";try{List<String>allString=newArrayList<>();while((line=br.readLine())!=null)//读取到的内容给line变量{everyLine=line;System.out.println(everyLine);allString.add(everyLine);}System.out.println("csv表格中所有行数:"+allString.size());}catch(IOExceptione){e.printStackTrace();}}

⑷ java如何读取一个txt文件的所有内容

import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;public class ReadFile { public static void main(String[] args) throws IOException { String fileContent = readFileContent(""); System.out.println(fileContent); } //参数string为你的文件名 private static String readFileContent(String fileName) throws IOException { File file = new File(fileName); BufferedReader bf = new BufferedReader(new FileReader(file)); String content = ""; StringBuilder sb = new StringBuilder(); while(content != null){ content = bf.readLine(); if(content == null){ break; } sb.append(content.trim()); } bf.close(); return sb.toString(); }}求采纳为满意回答。

⑸ Java里面怎么解析xml文件的内容

import java.io.File;import java.util.Iterator;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class Dom4JReader {public Dom4JReader() {}/**** @Function 获取xml文件里符合要求的数据*/public void getDom() {SAXReader sr = new SAXReader();try {//获取applicationContext.xml文件的对象Document doc = sr.read(new File("applicationContext.xml"));//获得跟节点Element root = doc.getRootElement();//// 枚举所有子节点for (Iterator i = root.elementIterator("bean"); i.hasNext();) {//获取bean节点Element bean = (Element) i.next();// 枚举名称为bean的节点for (Iterator j = bean.attributeIterator(); j.hasNext();) {//获取bean节点的所有属性Attribute attr = (Attribute) j.next();//判断属性的值如果为fileUploadBoif (attr.getText().equals("fileUploadBo")) {//打印出这个bean节点的所有信息System.out.println(bean.asXML());}}}} catch (DocumentException e) {e.printStackTrace();}}}这段代码要执行的话,要导入dom4j的包,还有//获取applicationContext.xml文件的对象

⑹ java解析word文档有哪些方法

java读取word文档时,虽然网上介绍了很多插件poi、java2Word、jacob、itext等等,poi无法读取格式(新的估计行好像还在处于研发阶段,不太稳定,做项目不太敢用);java2Word、jacob容易报错找不到注册,比较诡异,我曾经在不同的机器上试过,操作方法完全一致,有的机器不报错,有的报错,去他们论坛找高人解决也说不出原因,项目部署用它有点玄;itxt好像写很方便但是我查了好久资料没有见到过关于读的好办法。经过一番选择还是折中点采用rtf最好,毕竟rtf是开源格式,不需要借助任何插件,只需基本IO操作外加编码转换即可。rtf格式文件表面看来和doc没啥区别,都可以用word打开,各种格式都可以设定。—– 实现的功能:读取rtf模板内容(格式和文本内容),替换变化部分,形成新的rtf文档。—– 实现思路:模板中固定部分手动输入,变化的部分用$info$表示,只需替换$info$即可。1、采用字节的形式读取rtf模板内容2、将可变的内容字符串转为rtf编码3、替换原文中的可变部分,形成新的rtf文档主要程序如下:public String bin2hex(String bin) {char[] digital = "0123456789ABCDEF".toCharArray();StringBuffer sb = new StringBuffer("");byte[] bs = bin.getBytes();int bit;for (int i = 0; i < bs.length;i++) {bit = (bs[i] & 0x0f0)>> 4;sb.append("\\'");sb.append(digital[bit]);bit = bs[i] & 0x0f;sb.append(digital[bit]);}return sb.toString(); }public String readByteRtf(InputStream ins, String path){ String sourcecontent =""; try{ ins = newFileInputStream(path); byte[] b= new byte[1024];if (ins == null) {System.out.println("源模板文件不存在");}int bytesRead = 0;while (true) {bytesRead = ins.read(b, 0, 1024); // return final read bytescountsif(bytesRead == -1) {// end of InputStreamSystem.out.println("读取模板文件结束");break;}sourcecontent += new String(b, 0, bytesRead); // convert to stringusing bytes} }catch(Exception e){ e.printStackTrace(); } return sourcecontent ;}以上为核心代码,剩余部分就是替换,从新组装java中的String.replace(oldstr,newstr);方法可以实现,在这就不贴了。源代码部分详见附件。运行源代码前提:c盘创建YQ目录,将附件中"模板.rtf"复制到YQ目录之下,运行OpreatorRTF.java文件即可,就会在YQ目录下生成文件名如:21时15分19秒_cheney_记录.rtf的文件。 package com;import java.io.File;import java.io.FileInputStream;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.Date;public class OperatorRTF {public String strToRtf(String content){char[] digital = "0123456789ABCDEF".toCharArray();StringBuffer sb = new StringBuffer("");byte[] bs = content.getBytes();int bit;for (int i = 0; i < bs.length; i++) {bit = (bs[i] & 0x0f0)>> 4;sb.append("\\'");sb.append(digital[bit]);bit = bs[i] & 0x0f;sb.append(digital[bit]);}return sb.toString();}public String replaceRTF(String content,String replacecontent,intflag){String rc = strToRtf(replacecontent);String target = "";if(flag==0){target = content.replace("$timetop$",rc);}if(flag==1){target = content.replace("$info$",rc);}if(flag==2){target = content.replace("$idea$",rc);}if(flag==3){target = content.replace("$advice$",rc);}if(flag==4){target = content.replace("$infosend$",rc);}return target;}public String getSavePath() {String path = "C:\\YQ";File fDirecotry = new File(path);if (!fDirecotry.exists()) {fDirecotry.mkdirs();}return path;}public String ToSBC(String input){char[] c =input.toCharArray();for (int i =0; i < c.length; i++){if (c[i] == 32){c[i] = (char) 12288;continue;}if (c[i] < 127){c[i] = (char) (c[i] + 65248);}}return newString(c);}public void rgModel(String username, String content) {// TODO Auto-generated method stubDate current=new Date();SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-ddHH:mm:ss");String targetname = sdf.format(current).substring(11,13) + "时";targetname += sdf.format(current).substring(14,16) + "分";targetname += sdf.format(current).substring(17,19) + "秒";targetname += "_" + username +"_记录.rtf";String strpath = getSavePath();String sourname = strpath+"\\"+"模板.rtf";String sourcecontent = "";InputStream ins = null;try{ins = new FileInputStream(sourname);byte[] b = new byte[1024];if (ins == null) {System.out.println("源模板文件不存在");}int bytesRead = 0;while (true) {bytesRead = ins.read(b, 0, 1024); // return final read bytescountsif(bytesRead == -1) {// end of InputStreamSystem.out.println("读取模板文件结束");break;}sourcecontent += new String(b, 0, bytesRead); // convert to stringusing bytes}}catch(Exception e){e.printStackTrace();}String targetcontent = "";String array[] = content.split("~");for(int i=0;i<array.length;i++){if(i==0){targetcontent = replaceRTF(sourcecontent, array[i], i);}else{targetcontent = replaceRTF(targetcontent, array[i], i);}} try {FileWriter fw = new FileWriter(getSavePath()+"\\" +targetname,true);PrintWriter out = new PrintWriter(fw);if(targetcontent.equals("")||targetcontent==""){out.println(sourcecontent);}else{out.println(targetcontent);}out.close();fw.close();System.out.println(getSavePath()+" 该目录下生成文件" +targetname + " 成功");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void main(String[] args) {// TODO Auto-generated method stubOperatorRTF oRTF = new OperatorRTF();String content ="2008年10月12日9时-2008年10月12日6时~我们参照检验药品的方法~我们参照检验药品的方法~我们参照检验药品的方法~我们参照检验药品的方法";oRTF.rgModel("cheney",content);}}

⑺ 如何用JAVA解析txt文件

java读取txt文件内容。可以作如下理解:首先获得一个文件句柄。File file = new File(); file即为文件句柄。两人之间连通电话网络了。接下来可以开始打电话了。通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了。接下来需要解读成乙方可以理解的东西既然你使用了FileInputStream()。那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据解读完成后要输出呀。那当然要转换成IO可以识别的数据呀。那就需要调用字节码读取的方法BufferedReader()。同时使用bufferedReader()的readline()方法读取txt文件中的每一行数据哈。package com.campu;import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.Reader; public class H20121012 {/*** 功能:Java读取txt文件的内容* 步骤:1:先获得文件句柄* 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取* 3:读取到输入流后,需要读取生成字节流* 4:一行一行的输出。readline()。* 备注:需要考虑的是异常情况* @param filePath*/public static void readTxtFile(String filePath){try {String encoding="GBK";File file=new File(filePath);if(file.isFile() && file.exists()){ //判断文件是否存在InputStreamReader read = new InputStreamReader(new FileInputStream(file),encoding);//考虑到编码格式BufferedReader bufferedReader = new BufferedReader(read);String lineTxt = null;while((lineTxt = bufferedReader.readLine()) != null){System.out.println(lineTxt);}read.close();}else{System.out.println("找不到指定的文件");}} catch (Exception e) {System.out.println("读取文件内容出错");e.printStackTrace();}}public static void main(String argv[]){String filePath = "L:\\Apache\\htdocs\\res\\20121012.txt"; // "res/";readTxtFile(filePath);} }

⑻ 如何用java读取一个txt 文件内的内容并把它

import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.io.Reader;public class H {/*** 功能:Java读取txt文件的内容* 步骤:1:先获得文件句柄* 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取* 3:读取到输入流后,需要读取生成字节流* 4:一行一行的输出。readline()。* 备注:需要考虑的是异常情况* @param filePath*/public static void readTxtFile(String filePath){try {String encoding="GBK";File file=new File(filePath);if(file.isFile() && file.exists()){ //判断文件是否存在InputStreamReader read = new InputStreamReader(new FileInputStream(file),encoding);//考虑到编码格式BufferedReader bufferedReader = new BufferedReader(read);String lineTxt = null;while((lineTxt = bufferedReader.readLine()) != null){System.out.println(lineTxt);}read.close();}else{System.out.println("找不到指定的文件");}} catch (Exception e) {System.out.println("读取文件内容出错");e.printStackTrace();}}public static void main(String argv[]){String filePath = "L:\\20121012.txt";// "res/";readTxtFile(filePath);}}

⑼ java 解析xml文件内容

还是用正则表达式吧。解析保存至map。然后根据key得到value package com.thinkland.test;import java.util.HashMap;import java.util.Map;import java.util.regex.Matcher;import java.util.regex.Pattern;public class TTT { public static Pattern p_info=Pattern.compile("<info>.*?</info>",Pattern.DOTALL); public static Pattern p_req=Pattern.compile("<request>.*?</request>"); public static Pattern p_res=Pattern.compile("<response>.*?</response>"); public static Map<String,String> maps=new HashMap<String, String>(); public static void main(String[] args) { String str = "<infos> <info> <request>sss</request> <response> {aa:bb} </response> </info> <info> <request>qqq</request> <response> {aa:bb} </response> </info></infos>"; Matcher m=p_info.matcher(str); while(m.find()){ String info=m.group(); Matcher m2=p_req.matcher(info); String req=null,res=null; if(m2.find()){ req=m2.group(); req=req.substring(9,req.length()-10); } m2=p_res.matcher(info); if(m2.find()){ res=m2.group(); res=res.substring(10,res.length()-11); } maps.put(req, res); } System.out.println(maps.get("sss")); }}

⑽ Java 如何读取txt文件的内容

能有的,很简单,readLine即可,然后封装到Map里面,key就是序号,value就是后面的值

未经允许不得转载:山九号 » java解析文件内容|java解析word文档有哪些方法

赞 (0)