BOLB转word文件,和word文件转换BOLB

1.BOLB转word文件

import java.io.*;
import java.sql.*;

public class Test {
    Connection con = null;
    Statement stmt = null;
    ResultSet rs = null;

    private ResultSet getResultSet() {

        try {
            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
            String url = "jdbc:oracle:thin:@10.23.117.110:1521:zgzhms";
            String user = "ibms";
            String password = "ibms";
            con = DriverManager.getConnection(url, user, password);
            stmt = con.createStatement();
            String sql = "SELECT  t.TXN_TRADE FROM  T_TXN_TRADE t    WHERE  t.txn_trade_id = 1";
            rs = stmt.executeQuery(sql);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return rs;
    }

    public void InputDoc() {
        Test temp = new Test();
        ResultSet rset = temp.getResultSet();
        try {
            while (rset.next()) {
                oracle.sql.BLOB blob = (oracle.sql.BLOB) rset.getBlob("TXN_TRADE");
                File f = new File("C:\\temp.doc");
                FileOutputStream fos = new FileOutputStream(f);
                InputStream is = blob.getBinaryStream();// 读出数据后转换为二进制流
                byte[] data = new byte[1024];
                while (is.read(data) != -1) {
                    fos.write(data);
                }
                fos.close();
                is.close();
            }
            con.commit(); // 正式提交
            rset.close();
        } catch (Exception e) {
        }
    }

    public static void main(String[] args) {
        Test temp = new Test();
        temp.InputDoc();
    }

2.word文件转换BOLB

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import oracle.sql.BLOB;

public class DbBlobTest {

    private static
    final String DB_URL = "jdbc:oracle:thin:@10.0.7.170:1522:ORCL5";

    private static
    final String DB_USER = "test";

    private static final String
            DB_PASSWORD = "test";

    private static Connection conn =
            null;

    public static void main(String[] args) throws
            Exception {
        // insert into blob

        Connection conn = getConnection();

        PreparedStatement ps = conn

                .prepareStatement("INSERT INTO WORD_FILE  (GYO_NUM, WORD_KB, WORD_FILENAME, BIKO, USR_ID, YMDT, WORD_FILE) values(6, ‘KYK002‘, ‘20171114test.doc‘, ‘備考‘, ‘VENAS‘, TO_DATE(‘17-11-14‘, ‘RR-MM-DD‘), ?)");

        String inFile =
                "C:/Users/zhangrw/Desktop/test/2nANQz3wsFN8rkrTZa5P8xQY8PRBhyHw.jpg ";

        //设定的是blob类型
        ps.setBlob
                (1, file2Blob(inFile));
        ps.executeUpdate();
    }

    /**
     * test blob data 2 file
     *
     * @throws Exception
     */
    public static void testBlob2File() throws Exception {

        Connection conn = getConnection();

        PreparedStatement ps = conn
                .prepareStatement
                        ("select * from WORD_FILE a ");

        ResultSet rs =
                ps.executeQuery();
        int index = 1;
        while
                (rs.next()) {
            Blob bl = rs.getBlob("WORD_FILE");

            String outFile =
                    "C:/Users/zhangrw/Desktop/test/dou_" + (index++) + ".doc";

            blob2File(bl, outFile);
        }
    }

    /**
     * upload
     * file
     * 通过二进制的方式来上传文件
     */
    public static void testFile2byte() {
        try {
            // insert into blob
            Connection conn = getConnection();

            PreparedStatement ps = conn

                    .prepareStatement("INSERT INTO WORD_FILE(GYO_NUM, WORD_KB, WORD_FILENAME, BIKO, USR_ID, YMDT, WORD_FILE) values(4, ‘KYK002‘, ‘20171114test.doc‘, ‘備考‘, ‘VENAS‘, TO_DATE(‘17-11-14‘, ‘RR-MM-DD‘), ?)");

            String inFile = "C:/Users/zhangrw/Desktop/test/2nANQz3wsFN8rkrTZa5P8xQY8PRBhyHw.jpg ";

            byte[] result = file2Byte(inFile);

            //设定的是自己码文件
            ps.setBytes(1, result);

            ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

    /**
     * 将文件转化为
     * Blob的对象
     * create file 2 blob
     *
     * @param inFile
     * @return
     */
    public static Blob file2Blob(String inFile) {

        try {

            byte[] result = file2Byte(inFile);
            //creat a new blob
//            BLOB blob = BLOB.createTemporary(conn, true, BLOB.DURATION_SESSION);

            BLOB blob = BLOB.empty_lob();
            //set start is 1
            //这个setBytes 是指定起点,然后设定字节
            blob.setBytes(1, result);

            //pub byte 这个方法是添加byte
//          blob.putBytes(1, result);
            return blob;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 将文件转化为二进制的数据
     * create file 2 byte
     *
     * @param inFile
     * @return
     */
    public static byte[]
    file2Byte(String inFile) {
        InputStream in = null;

        try {
            in = new FileInputStream(new File(inFile));

            int len = in.available();
            byte[]
                    result = new byte[len];
            in.read(result);

            return result;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;

    }

    /**
     * 将Blob文件转化为Blob对象
     * convert blob to file
     *
     * @param blob
     * @param outFile
     */
    public static void blob2File(Blob blob, String outFile) {

        InputStream in = null;
        OutputStream out = null;

        try {
            //通过getBinaryStream 方法获取输入流

            in = blob.getBinaryStream();
            out = new
                    FileOutputStream(new File(outFile));
            byte[] buff
                    = new byte[1024];
            int len = 0;
            while
                    ((len = in.read(buff)) > 0) {
                out.write(buff,
                        0, len);
            }
        } catch (Exception e) {

            e.printStackTrace();
        } finally {
            try {

                if (in != null) {
                    in.close();

                }
            } catch (IOException e) {

                e.printStackTrace();
            }
            try {

                if (out != null) {
                    out.close();

                }
            } catch (IOException e) {

                e.printStackTrace();
            }
        }
    }

    static {

        try {
            Class.forName
                    ("oracle.jdbc.driver.OracleDriver");

            conn =
                    DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection() {

        try {

            if (conn == null) {
                Class.forName
                        ("oracle.jdbc.driver.OracleDriver");

                conn =
                        DriverManager
                                .getConnection(DB_URL,
                                        DB_USER, DB_PASSWORD);
            }
            return conn;

        } catch (Exception e) {
            e.printStackTrace();
        }

        return null;
    }
}

原文地址:https://www.cnblogs.com/ComputerVip/p/11690890.html

时间: 2024-11-09 10:33:42

BOLB转word文件,和word文件转换BOLB的相关文章

Java转换Word文件到PDF文件

使用Docx4j将Word文件转换为PDF文件: public static void convertDocxToPDF(String docxFilePath, String pdfPath) throws Exception { OutputStream os = null; try { // 加载文件 File docx = new File(docxFilePath); InputStream is = new FileInputStream(docx); WordprocessingM

word HTML文件与Markdwon互相转换的几种方式

Tip:word文件与Markdwon转换往往是可逆的.无论使用哪种方式,要想完美转换,必须要预先处理掉markdown与word不兼容的格式,如word文件对象,带边框的代码块等等 方法一:借助pandoc 或者结合Writage 下载地址https://pandoc.org/installing.html 也可从国内网站下载,最好是msi后缀的(会自动添加path). 如果安装来Anaconda 可以直接使用 无需下载 Linux: sudo apt-get install pandoc 使

C#.NET实现Word或Excel文件转为HTML文件

Word文件转html,返回相对路径 1 private string GetPathByDocToHTML(string strFile) 2 { 3 if (string.IsNullOrEmpty(strFile)) 4 { 5 return "0";//没有文件 6 } 7 8 Microsoft.Office.Interop.Word.ApplicationClass word = new Microsoft.Office.Interop.Word.ApplicationCl

如何通过WPS 2013 API 将Office(Word、Excel和PPT)文件转PDF文件

1. 描述 PDF 文件是一种便携文件格式,是由Adobe公司所开发的独特的跨平台文件格式.PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即PDF会忠实地再现原稿的每一个字符.颜色以及图象.可移植文档格式,也称为"便携文档格式",是一种电子文件格式.这种文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还是在苹果公司的Mac OS操作系统中都是通用的.这一特点使它成为在Internet上进行电子文

怎么把pdf文件转换为word

今日有许多朋友提问怎么把PDF电子文件转换为Word格式再进行编辑,PDF转换成Word软件在哪下载?等问题,我们知道,一般网上下载的PDF转换成Word需要注册或购买的,对于临时处理文件的用户而言是没有必要的,这里将为大家分享一个免费将PDF转换为Word的工具. 将PDF文件转换为Word我们需要专门的转换软件,但如果你问哪种最方便最安全,这里笔者推荐使用迅捷PDF转换成Word转换器这款软件很强大,可有将将纯文字的或者图文并茂的PDF文件转换成可以编辑的Word,转换之后也是和PDF一样,

将PDF文件转换为word文档格式

平常编辑修改一些文档都是office类型的文档,但是随着PDF文件应用越来越广泛,在处理文档的时候遇见PDF也是很常见的虽然已经有PDF的编辑工具,但是对文档内容进行大范围的修改还是很不方便的,一般我们编辑文档都是用word来编写.即使是要支持PDF文档可以用word制作好以后在输出PDF格式,那么怎样把PDF文件转换成为word呢? 常用的办公文档之间的格式互相转换可以通过文档转换工具来实现,对于经常要处理各种文档的可以安装转换工具进行转换,如果只需要转换一些小文档,那么直接通过在线转换方式也

Office文件的奥秘——.NET平台下不借助Office实现Word、Powerpoint等文件的解析

Office文件的奥秘——.NET平台下不借助Office实现Word.Powerpoint等文件的解析 分类: 技术 2013-07-26 15:38 852人阅读 评论(0) 收藏 举报 OfficePowerPointWord格式解析 转载http://www.cnblogs.com/mayswind/archive/2013/03/17/2962205.html [题外话] 这是2010年参加比赛时候做的研究,当时为了实现对Word.Excel.PowerPoint文件文字内容的抽取研究

利用模板导出文件(二)之jacob利用word模板导出word文件(Java2word)

先下载jacob.jar包. 解压后将jacob.dll放到windows/system32以下或\jre\bin以下. 将jacob.jar增加项目. 这样项目的环境基本上搭建完毕,接下来就是书写相关的代码: /** * 传入数据为HashMap对象,对象中的Key代表word模板中要替换的字段.Value代表用来替换的值. * word模板中全部要替换的字段(即HashMap中的Key)以特殊字符开头和结尾. * 如:$code$.$date$--.以免执行错误的替换. * 全部要替换为图片

Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件

Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件,用这个控件来导入.导出数据非常方便.其中Aspose.Cells就是用来操作Excel的,功能有很多.我所用的是最基本的功能,读取Excel的数据并导入到Dataset或数据库中.读取Excel表格数据的代码如下: 首先要引入命名空间:using Aspose.Cells; Workbook workbook = new Workbook(); workbook.Open("C:\\test.xlsx");