Java 如何从源文件夹中读取图像作为FileInputStream?
我一直在尝试将Java 如何从源文件夹中读取图像作为FileInputStream?,java,image,file,netbeans,Java,Image,File,Netbeans,我一直在尝试将图像上传到数据库。所以我做了一个browse按钮来浏览目录并获取图像。假设未选择任何图像,则会将默认图像上载到数据库。图像存储在源文件夹下名为'resources'的文件夹中。在图像中,助手是包含.java文件的文件夹,下面是resources文件夹,我将图像上载为FileInputStream,代码为 File pic=new File(imgloc); FileInputStream fis=new FileInputStream(pic); 如果未选择图像上载默认图像,则我
图像
上传到数据库。所以我做了一个browse
按钮来浏览目录并获取图像。假设未选择任何图像,则会将默认图像
上载到数据库。图像存储在源文件夹下名为'resources'
的文件夹中。在图像中,助手是包含.java文件的文件夹,下面是resources
文件夹,我将图像上载为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
和一个类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、 文本
jar:file:/D:/temp/ab.jar/text/b.txt
jar:file:/D:/temp/ab.jar/其他/c.txt
编辑
由于您不想使用文件,而只想使用InputStream,因此可以使用
InputStream fis = Main.class.getResourceAsStream("/a.txt");
然后使用ps.setBinaryStream(1,fis)进行设置代码>考虑以下包结构
/
/testing_package
/testing_package/Main.java
/testing_package/Image.png
现在,这里有一个程序来获取Image.png并将其放入数据库
public class Main {
public static void main(String...args) {
System.out.println(Main.class.getResource("image.jpg"));
//PreparedStatement as ps
ps.setBinaryStream(1, Main.class.getResourceAsStream("image.jpg")));
}
}
要记住的事情
使用getResource(…)
或getResourceAsStream(…)
时,请使用您正在调用其函数的类实例的相对位置
你不能从运行时读取源文件夹-资源应该在你的classpath上我已经在源文件夹包下创建了一个resources
文件夹,我说你不能从运行时读取源文件夹,但是当我用winrar
@ScaryWombat I打开jar文件时,我可以看到resources
文件夹我想我们可以在运行时从源文件夹中读取文件。是的,兄弟,我试过这个方法。在这段代码之后,我使用了filepic=newfile(url.to-URI)
因为我需要将它加载到数据库中,它是在CodeBro中工作的,而不是在jar中。它显示异常非法参数异常:URI不是分层的。我没有跟踪你。这是一个完全不同的错误。此外,此代码文件pic=新文件(url.to URI)
一点意义都没有Bro很抱歉我犯了错误,但我的问题是我想将图像作为文件
获取,然后只有我可以根据我的代码将其添加到数据库中,您是否获得URL?这是第一步耶,兄弟。我得到了url
。那么请告诉我该怎么做