File infile = new File("D:\\test.txt");
 try
 {
   conn.setAutoCommit(false);
   stmt = conn.createStatement();
   stmt.executeUpdate("INSERT INTO TEST VALUES (11, EMPTY_CLOB())");
   ps = conn.prepareStatement("select content from test where ID=11 for update");

   rs = ps.executeQuery();
           if( rs.next() )
           {
             oracle.sql.CLOB clob = ( oracle.sql.CLOB) rs.getClob(1);
             java.io.Writer writer = clob.getCharacterOutputStream();
             buf char[] = new char[1024];
             
             java.io.FileReader fr = new java.io.FileReader("D:\\test.txt");
             char buf [] = new char[1024];
             int len = 0;
             while(true)
             {
               len = fr.read(buf);
               if( len <0) break;
               writer.write(buf, 0, len);
             }
             writer.flush();
             writer.close();
           }

   //ps.executeUpdate();  可不用
   
  ps.close();
  conn.commit();
}catch(Exception e)
 {
  System.out.println("error happedd");
   e.printStackTrace();
 }
未测试  大致上这样