gpt4 book ai didi

java - 使用Java从MySQL中检索图片

转载 作者:行者123 更新时间:2023-12-02 08:48:41 25 4
gpt4 key购买 nike

我有一个与使用 JDBC 从 MySQL 检索文件相关的问题。我设法从桌面保存 .png 文件并成功检索它,但我无法读取该文件。它表明该格式不受支持(尽管我可以毫无问题地打开原始文件)。

代码如下:

    PreparedStatement ps = con.prepareStatement("select * from project where files IS NOT NULL ");


ResultSet rs = ps.executeQuery();
rs.next();

Clob c = rs.getClob(3);
Reader r = c.getCharacterStream();


FileWriter fw = new FileWriter("C:\\Users\\xxxl\\Pictures\\Picture1.png");
int in;
while ((in = r.read())!=-1)
fw.write((char)in);

fw.close();
con.close();

System.out.println("File successfully retrieved");

有什么想法可能是什么原因以及如何解决它吗?

最佳答案

您必须使用FileOutpuStream,因为您必须写入字节而不是char。此外,您的列应该是一个 blob

这样的东西应该有效

PreparedStatement ps = con.prepareStatement("select * from project where files IS NOT NULL ");


ResultSet rs = ps.executeQuery();
rs.next();

Blob c = rs.getBlob(3);
InputStream r = c.getBinaryStream();


FileOutputStream fw = new FileOutputStream ("C:\\Users\\xxxl\\Pictures\\Picture1.png");
int in;
byte[] readBytes = new byte[500];
while (r.read(readBytes)!=-1) {
fw.write(readBytes);
}
fw.close();
con.close();

System.out.println("File successfully retrieved");

进口是:

import java.io.FileOutputStream;
import java.io.InputStream;
import java.sql.Blob;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

关于java - 使用Java从MySQL中检索图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60916789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com