FileNotFoundException java在';在那里
我正在尝试读取一个基本的txt文件,其中包含欧元价格。我的程序应该循环遍历这些价格,然后创建一个包含其他价格的新文件。现在,问题是java说它找不到第一个文件 它在完全相同的包中,如下所示:FileNotFoundException java在';在那里,java,file,filereader,filenotfoundexception,Java,File,Filereader,Filenotfoundexception,我正在尝试读取一个基本的txt文件,其中包含欧元价格。我的程序应该循环遍历这些价格,然后创建一个包含其他价格的新文件。现在,问题是java说它找不到第一个文件 它在完全相同的包中,如下所示: new FileReader(new File(this.getClass().getClassLoader().getResource("prices_usd.txt").getFile())); new FileReader("src/main/java/week5/practicum13/price
new FileReader(new File(this.getClass().getClassLoader().getResource("prices_usd.txt").getFile()));
new FileReader("src/main/java/week5/practicum13/prices_usd.txt");
Java已在以下代码处失败:
FileReader fr = new FileReader("prices_usd.txt");
全部代码:
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();
}
}
您的文件名为“prices\u usd”,您的代码正在查找“prices\u usd.txt”将资源文件(如
prices\u 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");
但是,如果您确实有很好的理由将其放入包中,您可以这样访问它:
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\u usd.txt”,而不仅仅是“prices\u usd”
编辑1:第一个(推荐)解决方案在.getFile()
上返回字符串,当应用程序在IDE中生成/未运行时,该字符串不能直接传递给新文件(…)
构造函数。但有一个解决方案:
只需将此代码用于Spring:
new FileReader(new ClassPathResource("prices_usd.txt").getFile());
您需要做几件事:
.txt
extn正确重命名文件。从屏幕打印来看,文件似乎没有扩展名,或者可能只是不可见李>
希望这有帮助 路径是相对于包结构的根,而不是相对于您所在的类。请尝试“week5/practicum13/prices_usd.txt”,或将文件移动到项目中包含的资源文件夹或类的根目录下。可能该类文件正在其他文件夹中执行。尝试找到DollarToEur.class并将txt文件移到那里。