java - 如何从源文件夹中以 FileInputStream 形式读取图像?

标签 java image file netbeans

我一直在尝试将图像上传到数据库。因此,我制作了一个浏览按钮来浏览目录并获取图像。假设如果没有选择图像,默认图像将上传到数据库。该图像存储在源文件夹下名为'resources'的文件夹中。在图像中,helper是包含.java文件的文件夹,下面是resources文件夹helper directory contains .java files and below is the resource folder in this image我将图像上传为 FileInputStream ,代码为

File pic=new File(imgloc);
FileInputStream fis=new FileInputStream(pic);

如果未选择图像上传默认图像,我的代码是

File pic=new File(this.getClass().getResource("/resources/profile1.png").getFile());
FileInputStream fis=new FileInputStream(pic);

我对数据库的查询是

    ps.setBinaryStream(1,fis ,(int) pic.length()); //While substituing for '?' in query 

构建为 jar 后,在尝试添加默认图像时会产生 FileNotFoundException 。可能这个问题被问了好几次,我没有找到解决方案。我想将图像作为文件读取。提前致谢。

最佳答案

为了帮助说明,我创建了一个带有源目录的项目

src

在源代码下面我有一个包 starthere与类(class)Main

我创建另一个源目录xxx并放入文件 a.txt

我也在 xxx 下创建名为 text 的目录并放入名为 b.txt 的文件中

我也是在 src 下创建的名为 other 的目录并放入一个名为 c.txt 的文件中

我的代码是

    URL url = Main.class.getResource("/a.txt");
    System.out.println(url);
    URL url2 = Main.class.getResource("/text/b.txt");
    System.out.println(url2);
    URL url3 = Main.class.getResource("/other/c.txt");
    System.out.println(url3);

我的输出是

D:\temp>java -cp ab.jar starthere.Main

jar:file:/D:/temp/ab.jar!/a.txt

jar:file:/D:/temp/ab.jar!/text/b.txt

jar:file:/D:/temp/ab.jar!/other/c.txt

编辑

由于您不想使用文件,而只想使用输入流,因此可以使用

InputStream fis = Main.class.getResourceAsStream("/a.txt");

然后使用 ps.setBinaryStream(1, fis); 设置

关于java - 如何从源文件夹中以 FileInputStream 形式读取图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44940119/

相关文章:

java - 设计并实现在程序中实现星期几的类 Day

java - Akka : How to assign an Actor an alias path

html - 防止图像忽略容器的填充和边框

python - 使用 Gtk 3 在 Python 中加载并显示来自网络的图像?

java - 显示一个联系人姓名和多个号码

java - 通过java编写Windows shell脚本

c# - 构建一个位图,用较小的图像填充它

java - Java如何获取文件夹中的所有文件

file - 将fread与std::vector一起使用时出错

c# - 在 C# 中预分配文件空间?