java中.rtf文件变成文本文件
公司业务需求需要把.rtf文件转化成文本文件。
package chuyuanxiaojie;import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.StringReader;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.zip.ZipInputStream;import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.rtf.RTFEditorKit;public class Indexer {public static void main(String[] args) {for (int i = 0; i < 5; i++)new Thread(new tRunnable(i)).start();}public static Connection getConnection() {Connection conn = null;try {Class.forName("oracle.jdbc.driver.OracleDriver");conn = DriverManager.getConnection("jdbc:oracle:thin:@IP:1521:ORCL", "账号", "密码");System.out.println("success");} catch (Exception e) {e.printStackTrace();}return conn;}public static Connection getConnectionnyns() {Connection conn = null;try {Class.forName("oracle.jdbc.driver.OracleDriver");conn = DriverManager.getConnection("jdbc:oracle:thin:@IP:1521:ORCL", "账号", "密码");System.out.println("success");} catch (Exception e) {e.printStackTrace();}return conn;}public static String hex2str(byte[] b1) {String str = null;try {byte[] b2 = null;ZipInputStream zis = new ZipInputStream(new ByteArrayInputStream(b1));while (zis.getNextEntry() != null) {byte[] tmp = new byte[1024];int num = -1;ByteArrayOutputStream baos = new ByteArrayOutputStream();while ((num = zis.read(tmp, 0, tmp.length)) != -1)baos.write(tmp, 0, num);b2 = baos.toByteArray();baos.flush();baos.close();}zis.close();DefaultStyledDocument dsd = new DefaultStyledDocument();new RTFEditorKit().read(new ByteArrayInputStream(b2), dsd, 0);str = new String(dsd.getText(0, dsd.getLength()).getBytes("ISO8859_1"), "gbk");str = str.replaceAll("[A-Z]{2}\\(\\d{8},\\d,\\d\\)", "");} catch (Exception e) {e.printStackTrace();}return str;}}class tRunnable implements Runnable {public int num;public tRunnable(int num) {this.num = num;}@Overridepublic void run() {try {Connection conn = new Indexer().getConnection();Connection connnyns = new Indexer().getConnectionnyns();int startCount = num * 900000;int endCount = startCount + 900000;conn.setAutoCommit(false);PreparedStatement ps = connnyns.prepareStatement("insert into medical_record values(?,?,?)");System.out.println("线程" + num + "开始 " + startCount + "--"+ endCount);for (int i = startCount, j = 0; i < endCount; i += 3000) {ResultSet rs = conn.createStatement().executeQuery("select * from (select a.文件ID,a.内容,b.创建时间,rownum rn from 电子病历格式 a,电子病历记录 b where a.文件ID=b.ID and b.文件ID='29' and rownum<="+ (i + 3000) + ") where rn>" + i);while (rs.next()) {Blob blob = rs.getBlob(2);byte[] b1 = blob.getBytes(1, (int) blob.length());String s = Indexer.hex2str(b1);ps.setLong(1, rs.getLong(1));ps.setCharacterStream(2, new StringReader(s), s.length());ps.setDate(3, rs.getDate(3));ps.executeUpdate();}conn.commit();rs.close();j += 3000;System.out.println("线程" + num + "完成" + j + "条记录");}} catch (Exception e) {e.printStackTrace();}}
}
java中.rtf文件变成文本文件相关推荐
- 在Java中确定文件类型
以编程方式确定文件的类型可能非常棘手,并且已经提出并实现了许多基于内容的文件标识方法. Java中有几种可用于检测文件类型的实现,其中大多数很大程度上或完全基于文件的扩展名. 这篇文章介绍了Java中 ...
- java中各种文件的相互转化
java中各种文件的相互转化 前几天一直在进行rtf文件流转化为HTML,折腾了好久,文件的格式转化都无法成功.后来找到了一个新的包(aspose),总算解了我的燃眉之急.现在记录分享一下. 1.使用 ...
- java中写入文件_java中创建、写入文件的5种方式
在java中有很多的方法可以创建文件写文件,你是否真的认真的总结过?下面笔者就帮大家总结一下java中创建文件的五种方法. Files.newBufferedWriter(Java 8) Files. ...
- Java中的文件输入输出操作如何实现
Java是一门广泛应用的编程语言,它被用于开发各种类型的应用程序,包括桌面应用.服务器端应用和移动应用.在Java中,文件输入输出操作是很常见的,因为它们可以用于读取和写入文件数据.在本文中,我们将探 ...
- java中打开文件怎么实现_Java如何在程序中打开文件?
有时需要在java程序中打开一个文件.java.awt.Desktop可用于在java中打开文件.Desktop实现依赖于平台,因此首先,应该检查操作系统是否支持Desktop类.此类查找注册到当前平 ...
- java中打开文件显示_从java程序中打开任何文件
在 java中打开文件似乎有点棘手 – 对于.txt文件,必须将File对象与Scanner或BufferedReader对象结合使用 – 对于图像IO,必须使用 ImageIcon类 – 如果要打开 ...
- java语言 文件上传,java中实现文件上传的方法
java中实现文件上传的方法 发布时间:2020-06-19 10:29:11 来源:亿速云 阅读:86 作者:Leah 这篇文章给大家分享的是java中实现文件上传的方法,相信大部分人都还没学会这个 ...
- java中读取文件的方法
总结一下java中读取文件的方法: 方法一(逐行的读取文件内容): private FileReader fileReader; private BufferedReader bufferedRead ...
- 服务器测试文件怎么创建,如何创建一个“FTPS”模拟服务器以单元测试Java中的文件传输...
我有一个创建FTPS连接的CreateFTPConnection类.使用此连接传输文件.这里是TransferFile类的代码如何创建一个"FTPS"模拟服务器以单元测试Java中 ...
- java 获取文件扩展名_如何在Java中获取文件扩展名
java 获取文件扩展名 Sometimes while working with files, we need to process them differently based on their ...
最新文章
- hdu 2795 公告板 (单点最值)
- tomcat 配置异常/404页面
- aes离线解密工具_如何在Python中解密OpenSSL AES加密文件?
- Spring-tx-TransactionInterceptor类
- EtherCAT主站SOEM函数详解----SDO读写函数
- 迅捷pdf虚拟打印机怎么安装打印
- [MTK][FAQ20888] 开关机、重启时间优化
- 【Ware】C++编程软件
- java三国鼎立,网页游戏三国鼎立(武三国)一键服务端带教程及修改说明
- 计算机专业笔记本电脑华为,大学生不知道买什么电脑?来看这款华为荣耀极致性价比笔记本!...
- 完整的渗透测试实战纪实,低危漏洞组合成高危利用!
- RedisTemplate常用操作工具类封装,实现一个函数添加,删除,更新及对应批量操作
- 《MySQL数据库》之练习表数据:emp表与dept表的脚本整理
- stm32采集脉冲信号_随机脉冲信号采集卡的设计
- Shell脚本案例:实现局域网扫描功能
- Windows Xp 开机画面 Logo修改
- word文档出现乱码的解决方法
- 手机wifi可以连接路由器但是上不了网,为什么?
- 贝塞尔函数matlab代码
- sublime用星号多行注释的快捷键