java.io.FileNotFoundException:在数据库中插入图像时,系统找不到指定的文件
代码: 我得到了以下错误:java.io.FileNotFoundException:在数据库中插入图像时,系统找不到指定的文件,java,Java,代码: 我得到了以下错误: package com; import java.io.*; import java.sql.*; public class Sample { public static void main(String a[]){ Connection con = null; PreparedStatement ps = null; InputStream is = null; try { Class.forName("orac
package com;
import java.io.*;
import java.sql.*;
public class Sample {
public static void main(String a[]){
Connection con = null;
PreparedStatement ps = null;
InputStream is = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection("jdbc:oracle:thin:@172.26.132.40:1521:orclilp","aja60core","aja60core");
ps = con.prepareCall("insert into SAMPLE values (?,?,?)");
ps.setString(1, "Himanshu");
ps.setString(2, "Gupta");
is = new FileInputStream(new File("ajax-logo1.jpg"));
ps.setBinaryStream(3, is);
int count = ps.executeUpdate();
System.out.println("Count: "+count);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try{
if(is != null) is.close();
if(ps != null) ps.close();
if(con != null) con.close();
} catch(Exception ex){}
}
}
}
java.io.FileNotFoundException:ajax-logo1.jpg(系统找不到指定的文件)
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(FileInputStream.java:138)
位于com.Sample.main(Sample.java:19)
当java解释器找不到文件时,会发生异常
表示有人试图打开由指定
路径名已失败
FileInputStream将引发此异常,
FileOutputStream和RandomAccessFile构造函数
指定的路径名不存在。它也会被这些
构造函数,如果文件确实存在但由于某种原因
不可访问,例如当试图打开只读文件时
用于书写的文件
确保该文件存在于应用程序中(在.class文件所在的位置,而不是.java源文件所在的位置)
这是一个常见错误将“
ajax-logo1.jpg
”文件保存在Sample.java
所在的同一目录中(不推荐),或者在文件构造函数中提供“ajax-logo1.jpg
”文件的实际/相对路径。当您只需编写文件名时(正如您在代码示例中所做的那样),Java将在项目的根目录中查找文件,即如果项目文件位于目录databaseProject
中,并且目录结构如下所示:
java.io.FileNotFoundException: ajax-logo1.jpg (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at com.Sample.main(Sample.java:19)
等等。
默认情况下,java程序将考虑您的工作目录为“代码>数据库项目并查找文件,除非您提供绝对或相对的路径(从您的PWD)到您的文件。p>
一个好的方法是将所有图像放在一个文件夹中,例如
`databaseProject
|->src
|->pom.xml (for maven builds)
... `
然后使用路径:
“/images/”
访问图像。我已经将该图像的副本放入.class文件中,但它仍然不工作。您可以发布项目的文件结构吗?在eclipse src->com(package)->Sample.java+ajax-logo1.jpg bin->com(package)中->Sample.class+ajax-logo1.jpg如果我理解正确,该文件位于jar
文件中?否。您所说的哪个jar不是真的,除非Sample.class
与Sample.java
位于同一目录中,而Sample.java
不应该在同一目录中。什么不起作用,将该文件放在单独的目录中?或者将其放在项目的根目录中?
`databaseProject
|->src
|->images
|->ajax-logo1.jpg
|-> ....
|->pom.xml (for maven builds)
... `