簡體   English   中英

java.io.FileNotFoundException:系統找不到指定的文件-在數據庫中插入圖像時

[英]java.io.FileNotFoundException: the system cannot find the file specified -while inserting an image in database

碼:

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)

當Java解釋器找不到文件時,發生FileNotFoundException異常

表示嘗試打開由指定路徑名表示的文件失敗。

當具有指定路徑名的文件不存在時,FileInputStream,FileOutputStream和RandomAccessFile構造函數將拋出此異常。 如果該文件確實存在,但由於某種原因而無法訪問,例如,當試圖打開一個只讀文件進行寫入時,這些構造方法也會拋出該文件。

確保文件存在於您的應用程序中(.class文件所在的位置,.java源文件所在的位置)

那是一個常見的錯誤

保持“ ajax-logo1.jpg ”文件在同一目錄Sample.java位於(不推薦),或提供“實際/相對路徑ajax-logo1.jpg在文件構造”文件。

當您簡單地寫文件名時(如您在代碼示例中所做的那樣),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>"訪問圖像。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM