Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 比较数据库中的图像时出错_Java_Sql_Compare_Blob_Photo - Fatal编程技术网

Java 比较数据库中的图像时出错

Java 比较数据库中的图像时出错,java,sql,compare,blob,photo,Java,Sql,Compare,Blob,Photo,我想将导入的图像与数据库中的图像进行比较。到目前为止,我已经创建了这个,但我不断得到错误: Uncaught error fetching image: java.lang.NullPointerException at java.io.FileInputStream.<init>(FileInputStream.java:103) at java.io.FileInputStream.<init>(FileInputStream.java:66)

我想将导入的图像与数据库中的图像进行比较。到目前为止,我已经创建了这个,但我不断得到错误:

Uncaught error fetching image:
java.lang.NullPointerException
    at java.io.FileInputStream.<init>(FileInputStream.java:103)
    at java.io.FileInputStream.<init>(FileInputStream.java:66)
    at sun.awt.image.FileImageSource.getDecoder(FileImageSource.java:35)
    at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:240)
    at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
    at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)
我认为我的逻辑是正确的。为什么该方法不能从数据库中获取图像?

您的行

file2 = bytes.toString();
这是完全错误的。它决不会将字节写入文件。显然,您还没有用Java完成任何文件IO

如果有足够的内存,无论如何都可以绕过文件写入。您可以将
字节[]
包装在
ByteArrayInputStream
中,并使用
ImageIO.read()
从中提取图像

InputStream in = new ByteArrayInputStream(bytes);
Image img = ImageIO.read(in);
你的线路

file2 = bytes.toString();
这是完全错误的。它决不会将字节写入文件。显然,您还没有用Java完成任何文件IO

如果有足够的内存,无论如何都可以绕过文件写入。您可以将
字节[]
包装在
ByteArrayInputStream
中,并使用
ImageIO.read()
从中提取图像

InputStream in = new ByteArrayInputStream(bytes);
Image img = ImageIO.read(in);

@Kayaman如何将字节[]序列转换为图像?@Kayaman如何将字节[]序列转换为图像?好的!img呢?我怎么把它做成文件?你需要它变成文件吗?在你的比较中似乎是不必要的一步。无论如何,去阅读文件IO教程不完全是,但我如何使用它在这里gor文件2?Image image1=Toolkit.getDefaultToolkit().getImage(file1);Image image2=Toolkit.getDefaultToolkit().getImage(file2);将其作为参数传递。您已经拥有图像对象,无需再次加载。hhmmm。。好啊我这样做了:
Image-image1=Toolkit.getDefaultToolkit().getImage(file1);Image-image2=Toolkit.getDefaultToolkit().getImage(img.toString())我仍然得到一个nullpointerexception。但不一样!好啊img呢?我怎么把它做成文件?你需要它变成文件吗?在你的比较中似乎是不必要的一步。无论如何,去阅读文件IO教程不完全是,但我如何使用它在这里gor文件2?Image image1=Toolkit.getDefaultToolkit().getImage(file1);Image image2=Toolkit.getDefaultToolkit().getImage(file2);将其作为参数传递。您已经拥有图像对象,无需再次加载。hhmmm。。好啊我这样做了:
Image-image1=Toolkit.getDefaultToolkit().getImage(file1);Image-image2=Toolkit.getDefaultToolkit().getImage(img.toString())我仍然得到一个nullpointerexception。但不一样!