我正在尝试阅读包含欧元价格的基本txt文件。我的程序应该循环这些价格,然后用其他价格创建一个新文件。现在,问题是java说它无法找到第一个文件。
它与此完全相同:
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;
答案 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)
您需要做几件事:
.txt
extn正确重命名文件。 从您的屏幕打印看,该文件看起来没有扩展程序,或者可能只是不可见。 希望这有帮助!