我在Oracle 9的数据库blob列中存储了一些文件。
我想将那些文件存储在文件系统中。
这应该很容易,但是我找不到正确的选择。
如何在Java中执行此操作?
PreparedStatement ptmst = ...
ResutlSet rs = pstmt.executeQuery();
rs.getBlob();
// mistery
FileOutputStream out = new FileOutputStream();
out.write(); // etc et c
我知道应该是这样的…我不知道被评论为有 雾
谢谢
编辑
我终于从大卫的问题中得到了这一点。
这是我的懒惰实现:
PreparedStatement pstmt = connection.prepareStatement("select BINARY from MYTABLE");
ResultSet rs = pstmt.executeQuery();
while( rs.next() ) {
Blob blob = rs.getBlob("BINARY");
System.out.println("Read "+ blob.length() + " bytes ");
byte [] array = blob.getBytes( 1, ( int ) blob.length() );
File file = File.createTempFile("something-", ".binary", new File("."));
FileOutputStream out = new FileOutputStream( file );
out.write( array );
out.close();
}
您希望将blob作为输入流并将其内容转储到输出流。因此,“痛苦”应类似于:
Blob blob = rs.getBlob(column);
InputStream in = blob.getBinaryStream();
OutputStream out = new FileOutputStream(someFile);
byte[] buff = new byte[4096]; // how much of the blob to read/write at a time
int len = 0;
while ((len = in.read(buff)) != -1) {
out.write(buff, 0, len);
}
如果您发现自己做了很多这样的IO工作,则可以考虑使用Apache Commons
IO
来处理细节。然后,设置流之后的所有内容都将是:
IOUtils.copy(in, out);
问题内容: Jenkins控制台日志:(获得例外:由用户Edgar Yu启动在持久性级别中运行:MAX_SURVIVABILITY [Pipeline]节点在/ var / jenkins_home / workspace / test2中的Jenkins上运行[Pipeline] {[Pipeline]阶段[Pipeline] {(构建) [管道]回声大厦.. [管道]回声詹金斯 [Pipeli
Jenkins控制台日志:(得到异常:由用户Edgar Yu启动,运行在耐久性级别:MAX_SURVIVABILITY[Pipeline]节点,在/var/Jenkins_home/workspace/test2[Pipeline]{[Pipeline]stage[Pipeline]{(Build)[Pipeline]echo Building..[Pipeline]echo Jenkins [管
将数据帧中的数据写入路径path=rootcontainer/container1“/”fileName df。重新划分(1)。写格式(“com.databricks.spark.csv”)。选项(“标题”、“true”)。选项(“分隔符”,分隔符)。选项(“quote”,“\u0000”)。模式(SaveMode.Overwrite)。保存(路径) 执行上述命令时,除了在root容器/容器1/文
本文向大家介绍Java创建文件且写入内容的方法,包括了Java创建文件且写入内容的方法的使用技巧和注意事项,需要的朋友参考一下 前两天在项目中因为要通过http请求获取一个比较大的json数据(300KB左右)并且保存,思来想去,最后还是决定将获取到的json数据以文件的形式保存下来,每次使用的时候去读取文件就可以了。 废话不多说了,直接上代码。 以下是代码截图,文章结尾会有完成的代码文件可供下载
我正在编写一个Java Web服务,可以在其中上传3D对象,对其进行操作并存储它。 我试图做的是创建一个<code>AIScene作为输入参数,即文件本身(它的内容)。 我在文档中找不到这样做的方法,所有导入方法都需要路径。 现在,我要看一下Assimp的java版本和C版本。用哪一个来解决这个问题并不重要。 编辑:我试图完成的代码: 调试方法时,我在绑定到本机的方法中发现了访问冲突: 这是信息:
问题内容: 我正在尝试完成一个小程序。 我有一个文本文件(.txt),用于在我拥有的对象上存储不同的数据。 下一个是文件的结构(例如data.txt): 每个对象都由我建立的称为Cars的类实现。因此,第一行是汽车的类型,第二年是建造年份,第三行是里程,第四行是燃料类型,第五行是汽车的颜色。 因此,基本上,我需要打开文件,然后在将程序执行到带有对象的数组中时将数据加载到内存中。 我可以打开该文件,