java.io.FileNotFoundException:系统找不到指定的文件 - 在数据库

时间:2015-10-14 09:02:47

标签: 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("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)

3 个答案:

答案 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>"访问图片。