代码:
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 (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)
答案 0 :(得分:0)
当java解释器找不到文件时发生FileNotFoundException异常
表示尝试打开由指定的文件表示的文件 路径名失败。
FileInputStream将抛出此异常, 文件夹中的FileOutputStream和RandomAccessFile构造函数 指定的路径名不存在。它也会被这些抛出 构造函数如果文件存在但由于某种原因是 无法访问,例如尝试打开只读时 写作文件。
确保您的应用程序中存在该文件(.class文件所在的位置,而不是.java源文件所在的位置)
这是一个常见的错误
答案 1 :(得分:0)
将“ajax-logo1.jpg
”文件保留在Sample.java
所在的同一目录中(不推荐),或者在File构造函数中提供“ajax-logo1.jpg
”文件的实际/相对路径。
答案 2 :(得分:0)
当您只是编写文件名时(就像您在代码示例中所做的那样),Java将在项目的根目录中查找该文件,即您的项目文件是否在databaseProject
目录中目录结构如下所示:
`databaseProject
|->src
|->pom.xml (for maven builds)
... `
等。
默认情况下,java程序会将您的工作目录视为databaseProject
并查找其中的文件,除非您提供绝对或相对(从您的pwd)路径到您的文件。
一种好方法是将所有图像放在文件夹中,例如
`databaseProject
|->src
|->images
|->ajax-logo1.jpg
|-> ....
|->pom.xml (for maven builds)
... `
然后使用路径:"/images/<image_name>"
访问图片。