FileNotFoundException java无法在基本查找文件时找到它

时间:2018-03-22 14:16:06

标签: java file filereader filenotfoundexception

我正在尝试阅读包含欧元价格的基本txt文件。我的程序应该循环这些价格,然后用其他价格创建一个新文件。现在,问题是java说它无法找到第一个文件。

它与此完全相同:

this

Java已在以下代码中失败:

import java.io.*;

public class DollarToEur {
    public static void main(String[] arg) throws IOException, FileNotFoundException {
    FileReader fr = new FileReader("prices_usd.txt");
    BufferedReader br = new BufferedReader(fr);

    FileWriter fw = new FileWriter("prices_eur");
    PrintWriter pw = new PrintWriter(fw);

    String regel = br.readLine();
    while(regel != null) {
        String[] values = regel.split(" : ");
        String beschrijving = values[0];
        String prijsString = values[1];
        double prijs = Double.parseDouble(prijsString);
        double newPrijs = prijs * 0.913;

        pw.println(beschrijving + " : " + newPrijs);
        regel = br.readLine();
    }
    pw.close();
    br.close();

    }
}

整个代码:

var path = require("path"),
multer = require("multer");

const storage = multer.diskStorage({
    destination: function(req, file, next){
        next(null, '../public/imgs/');
        return;
    },
    filename: function(req, file, cb){
        cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname));
    }
});

const upload = multer({
    storage: storage
});

module.exports = upload;

3 个答案:

答案 0 :(得分:1)

您的文件名称为" prices_usd"并且您的代码正在寻找" prices_usd.txt"

答案 1 :(得分:0)

将资源文件(如prices_usd.txt)放入包中是不好的做法。请把它放在resources/目录下。如果直接将其放在resources/目录中,则可以像这样访问文件:

new FileReader(new File(this.getClass().getClassLoader().getResource("prices_usd.txt").getFile()));

但是如果你真的有充分的理由把它放在包中,你可以像这样访问它:

new FileReader("src/main/java/week5/practicum13/prices_usd.txt");

但是在导出项目时这不起作用(例如:作为jar)。

编辑0:当然,您的文件名称必须是“prices_usd.txt”,而不仅仅是“prices_usd”。

编辑1:第一个(推荐的)解决方案确实在.getFile()上返回一个字符串,当构建应用程序时,它不能直接传递给new File(...)构造函数在IDE中运行。 Spring有一个解决方案:org.springframework.core.io.ClassPathResource

只需在Spring中使用此代码:

new FileReader(new ClassPathResource("prices_usd.txt").getFile());

答案 2 :(得分:0)

您需要做几件事:

  1. 将文件直接放在Eclipse中的项目文件夹下。 在Eclipse中执行代码时,项目文件夹被视为工作目录。因此,您需要将文件放在那里,以便Java可以找到它。
  2. 使用.txt extn正确重命名文件。 从您的屏幕打印看,该文件看起来没有扩展程序,或者可能只是不可见。
  3. 希望这有帮助!