• java读取Oracle的BFile文件


    /**
    *
    * @author Jasmine
    */
    public class GetBlob
    {
    public static void main(String[] args)
    {
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    try
    {
    String driver = "oracle.jdbc.driver.OracleDriver";
    String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
    Class.forName(driver);
    System.out.println("class");
    conn = DriverManager.getConnection(url, "lyy", "lyy");
    System.out.println("connect");
    stmt = conn.createStatement();
    String sql = "select files from lyy.filetable where id=4";
    rs = stmt.executeQuery(sql);
    System.out.println("sql="+sql);
    while (rs.next())
    {
          System.out.println(rs.getMetaData().getColumnTypeName(1));

    //获取locator
    BFILE bf = (BFILE)rs.getObject(1);
    System.out.println("isFileOpen="+bf.isFileOpen());
    OutputStream ops = null;
    InputStream ips = null;
    File file = new File("e:"+File.separator+bf.getName());
    try
    {
        System.out.println(""+bf.fileExists());
        bf.openFile();
        ips = bf.getBinaryStream();
        byte[] buffer =new byte[bf.getBytes().length];
        ops = new FileOutputStream(file);

        //生成os系统文件

       for (int i; (i = ips.read(buffer)) > 0;)
       {
            System.out.println("i=" + i);
            ops.write(buffer, 0, i);
            ops.flush();
        }

    catch (Exception ex)
    {
           ex.printStackTrace(System.out);
    }
    finally
    {
          ips.close();
          bf.closeFile();
          ops.close();
    }

    }

    }
    catch (Exception ex)
    {
           ex.printStackTrace(System.out);
    }
    finally
    {
         try
        {
               rs.close();
               stmt.close();
               conn.close();
        }
        catch (SQLException ex)
        {
               Logger.getLogger(GetBlob.class.getName()).log(Level.SEVERE, null, ex);
         }
    }
    }
    }

  • 相关阅读:
    kubernetes 将pod运行在某些特定的节点上,给节点打标签
    kubernetes 安装metrics-server
    数组基本内容,如有遗漏还请指出!
    ES6新属性(追加)
    ES6新属性笔记
    Flex 布局教程
    你知道js中的变量你会定义吗?那常量呢?
    ES6-01:常量与变量的声明
    三种方法实现js中类的继承
    JS完成页面跳转并传参的方法|附加:循环遍历对象
  • 原文地址:https://www.cnblogs.com/liuyuanyuanGOGO/p/java_oracle_bfile.html
Copyright © 2020-2023  润新知