文件未找到异常,但它位于同一文件夹/包中

时间:2017-10-16 15:17:51

标签: java readfile filenotfoundexception

我有问题。在我的程序中,有一个类Firma。 在这个类的构造函数中,我从一个名为'firmendaten.fd'的文本文件中读取了一些信息。文本文件也位于同一个包中,但如果我尝试阅读,我会得到FileNotFoundException

产生错误的代码:

public Firma(){
    BufferedReader in = null; 
    try { 
        in = new BufferedReader(new FileReader("Firmendaten.fd")); 
        name = in.readLine();
        zusatz = in.readLine();
        strasse = in.readLine();
        hnr = in.readLine();
        plz = in.readLine();
        ort = in.readLine();
        bank = in.readLine();
        iban = in.readLine();
        bic = in.readLine();
        steuerNr = in.readLine();
        steuersatz = in.readLine();
        chef = in.readLine();
        zahlungsziel = in.readLine();

    } catch (IOException e) { 
        e.printStackTrace(); 
    } finally { 
        if (in != null) 
            try { 
                in.close(); 
            } catch (IOException e) { 
            } 
    } 
    }

它产生的错误:

java.io.FileNotFoundException: Firmendaten.fd (Das System kann die angegebene Datei nicht finden)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)

1 个答案:

答案 0 :(得分:0)

我最近遇到了类似的问题所以我使用了运行程序的.jar文件的位置。

        String path = Class.class.getProtectionDomain().getCodeSource().getLocation().getPath();
        path = path.substring(0, path.lastIndexOf("/") + 1);
        String decodedPath = URLDecoder.decode(path, "UTF-8");
        return decodedPath;

然后我把文件称为:

File file = new File(userPath + "\\yourfile.txt");

请注意,这是从这里的各种答案中获取的,所以希望可以帮到你。