gpt4 book ai didi

java - 如何将图片内容保存到Neo4J数据库中?关于Java IO

转载 作者:行者123 更新时间:2023-12-02 06:00:18 28 4
gpt4 key购买 nike

我是 Neo4J 的新生。我想我也是Java的新手,虽然我已经学了近两年了。

我想在neo4j数据库中保存和读取图片,我有一个InputStream实例,它的内容是图片数据。我有一个资源对象。它有一个byte[]属性用于保存图片数据。所以我就这样做

public static Resource getResourceInstance(InputStream in, String title) throws IOException{
StringBuilder sb = new StringBuilder();
BufferedInputStream input = new BufferedInputStream(in);
int b;
while((b = input.read()) != -1){
sb.append(b);
}
input.close();
in.close();
return new Resource(sb.toString().getBytes(), title, 0, 0);
}

然后我使用事务将其保存到 neo4j。我通过 neo4j-server 检查它。在数据库中,字节数组是数字,如51,52,45等

第二步我想从数据库读取字节数组。

我把它放在资源对象中。并使用 FileOutputStream 读取这样的代码

        images = resource.getImage();
String titleString = resource.getTitle();
String path = "images" + File.separator + titleString + ".jpg";
System.out.println(Paths.get(path).toRealPath());
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(path)));
out.write(images);
out.close();

这是一个 Java Web 项目。

我不知道为什么我必须首先在 path(String path = "images"+ File.separator + titleString + ".jpg";) 中创建一个文件。

虽然我这样做了,但我无法像打开图片一样打开该文件。

我现在很沮丧。我不知道该怎么办。你能帮助我吗?非常感谢。

PS:我的英语很差,希望你能容忍。

最佳答案

首先不要这样做。

将图片存储在文件系统或公共(public)存储(如 s3、dropbox 等)上,并将 url 或文件名保存在 neo4j 属性中。

如果要将文件读入 byte[],请创建一个 file.length() 大小的数组,并使用正确的偏移量读入该数组,直到 is。 read() 返回-1

关于java - 如何将图片内容保存到Neo4J数据库中?关于Java IO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22729122/

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