我正在尝试将一个 .txt 文件读到eclipse控制台,但我似乎无法弄清楚问题是什么,我总是得到一个FileNotFoundException
当我想要读它 - 这是我的代码到目前为止:
public static void main(String[] args) throws IOException{
Map<String,String> map = new HashMap<String, String>();
BufferedReader in;
in = new BufferedReader(new FileReader("./morse-code.txt"));
String line = "";
while ((line = in.readLine()) != null ){
String parts[] = line.split("\t");
map.put(parts[0], parts[1]);
}
in.close();
System.out.println(map.toString());
}
该文件位于正确的目录中,我检查了IDE是否在正确的路径中搜索:
String curDir = System.getProperty("user.dir");
System.out.println("Current sys dir: " + curDir);
但是,如果我想从文件中读取,我会收到此错误:
Exception in thread "main" java.io.FileNotFoundException: C:\Users\User\workspace\AuD\morse-code.txt (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)
at orkgrunzer.OrkGrunzer.main(OrkGrunzer.java:16)
我无法找到问题,也许有人可以帮我解决这个问题:)
答案 0 :(得分:0)
为了保护自己不受文件系统影响,您可以将文件放在类路径的根目录下并以这种方式加载:
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(Class.class.getResourceAsStream("/morse-code.txt")));
如果您决定将其放在某些文件夹下面,请执行以下操作:
resources/files/codes/morse-code.txt
并将文件夹resources
放在类路径上,然后您必须通过以下方式引用它:
"/files/codes/morse-code.txt"