读取txt文件

在Java里要对文件进行操作,需要用到IO流。

   public static void main(String args[]){File f = new File("test.txt");try {
// InputStream 处理的是字节流,用read()的话每次读取的是一个byteInputStream in  = new FileInputStream(f);
// InputStreamReader 处理的是字符流,用read()的话每次读取一个字符InputStreamReader reader = new InputStreamReader(in,"gbk");
// BufferReader 处理的是字符流,能够一行一行的读取文件BufferedReader bufReader = new BufferedReader(reader);int i = 1;String line ="";
// readLine()每用一次读取一行while((line = bufReader.readLine()) != null){System.out.println("第"+ i + "行:"+line);++i;}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}

输出:

操作doc文件

读取doc文件如果也用上面的方法的话,中文就会出现乱码:

要用Java Apache POI才能对doc文件进行操作,使用POI从doc文件读取数据时主要有两种方式:通过WordExtractor读和通过HWPFDocument读。首先先在Maven中引入poi-scratchpad的jar包(如果是docx文件则引入poi-ooxml的jar包 )

使用WordExtractor

WordExtractor的功能相比HWPFDocument的功能是要少的,在使用WordExtractor读文件时我们只能读到文件的文本内容和基于文档的一些属性,至于文档内容的属性等是无法读到的,并且WordExtractor无法修改doc文件。使用WordExtractor读取文件内容:

public static void main(String args[]){File f = new File("test.doc");try {InputStream in = new FileInputStream(f);WordExtractor ex = new WordExtractor(in);System.out.println(ex.getText());} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}

使用HWPFDocument

因为我主要是为了修改doc文件的内容,所以用HWPFDocument。将文档中的中文字全部去除:

public static void main(String args[]){File f = new File("test.doc");try {InputStream in = new FileInputStream(f);HWPFDocument ex = new HWPFDocument(in);Range range = ex.getRange();/*** 匹配中文字符 [\\u4e00-\\u9fa5]* 中文标点符号,、; \\uff1b|\\uff0c|\\u3001* 括号内容(包括括号) (\\(.*\\))*/ Pattern pattern = Pattern.compile("[\\u4e00-\\u9fa5]|\\uff1b|\\uff0c|\\u3001|(\\(.*\\))",Pattern.CASE_INSENSITIVE);Matcher matcher = pattern.matcher(range.text());OutputStream os = new FileOutputStream(f);// 找到中文字符并替换为“” 即删除while (matcher.find( )) {range.replaceText(matcher.group(),"");}// 将修改后的内容重新写入文档中ex.write(os);os.close();in.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}

修改前:

修改后:

做这个功能是为了背单词,而一个文档5500个单词,308页内容,一个一个删除中文太麻烦了,所以想到了用代码实现

参考资料:http://www.jb51.net/article/101910.htm

【Java】操作doc文件相关推荐

  1. Java操作word文件的工具选择

    Java操作word文件的工具选择 使用Java语言,创建doc.docx.excel.pdf等文档,并对文档进行一系列操作. Spire.Doc for Java https://blog.csdn ...

  2. JAVA操作xml文件

    参考:java操作xml方法,总有适合你的 XML技术在Java开发中的应用 1.简介 xml: extensible Markup Language 1.1使用场景: 不同的系统之间交互时使用xml ...

  3. JAVA操作属性文件,可进行读 写 更改

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! JAVA ...

  4. java操作properties文件简单学习

    java操作properties文件的工具类简单封装: 注意:由于本地和环境和linux服务的路径有区别,或者jetty,resin,tomcat部署后,文件的路径也是有区别的.比如我们在linux上 ...

  5. java 操作Zip文件(压缩、解压、加密)

    java 操作Zip文件(压缩.解压.加密) 依赖:点击下载 package com.zxl.test;import net.lingala.zip4j.model.ZipParameters; im ...

  6. java操作excel文件基础架构实现,支持2007以上版本

    转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/22800915 java操作office文件现在主流的jar包有jxl和POI,由 ...

  7. 高级知识点:excel4j实现java操作excel文件的读写

    介绍 java操作excel文件最经典的是POI,但是其api 较多,代码量巨大,反复重复 excel4j ap则简洁太多,利用pojo建模,利用注解进行标识@ExcelField(title = & ...

  8. Java操作XML文件及转义字符

    XML转义字符: eg: 实体必须以符号"&"开头,以符号";"结尾. 转载1: 目录 一.使用DOM4j进行XML的DOM解析 1.1.使用DOM4j ...

  9. JAVA操作properties文件

    操作properties文件的java方法 Properties prop = new Properties(); InputStream in = getClass().getResourceAsS ...

最新文章

  1. CSDN蒋涛提出技术社区三倍速定律,称下一个20年全球开发者数量将过亿
  2. JAVA常见算法题(三十)
  3. tor screenrec屏幕录制+_ScreenFlow for mac(屏幕录制软件) v8.2.4中文版
  4. BZOJ 2733 线段树的合并 并查集
  5. Centos 安装mongodb
  6. c遗传算法的终止条件一般_Matlab2 :Matlab遗传算法(GA)优4~-r-具箱是基于基本操作 联合开发网 - pudn.com...
  7. 动态创建表格(各种管理系统常见)
  8. VS 2017 + EF6 + MySQL5.7 建立实体模型闪退问题
  9. 使用iText处理pdf文件的入门级教程
  10. 简易PROTUES的定时器仿真
  11. Linux网络基础知识
  12. epub.js制作电子书阅读网站
  13. Python while语句2021-08-27
  14. qq农场外挂编写分析-java
  15. Node.js运行app.js时候报错933
  16. 写一个程序来确定到底谁是凶手
  17. Python数据挖掘—电力窃漏电用户自动识别
  18. PREP 语法笔记 2
  19. CA周记 - 在 Azure ML 上用 .NET 跑机器学习
  20. php如何实现余额充值,请问应用中实现绑定银行卡并进行消费、充值、提现一般是怎么搞的?...

热门文章

  1. R语言基础题及答案(三)——R语言与统计分析第三章课后习题(汤银才)
  2. #if #else 用法
  3. 字节跳动+京东+360+网易面试题整理,Java岗
  4. Cinema 4D 中的 Redshift 概述
  5. 基于单片机控制的智能窗帘控制系统的设计与实现
  6. 【智能家居】设计一种语音控制识别规则模型---结合思必驰DUI平台
  7. linux 交叉编译工具中没有libc和liblog库文件,NDK无法找到动态链接库;动态链接库找不到依赖的gcc库;JNI中无法找到要注册的类;and so on...
  8. MATLAB学习笔记:数列求和与级数
  9. zabbix监控服务器邮箱报警
  10. 实现PLC(S7-1200)的远程操控与调试