有没有办法可以打印出我们在这种情况下无法找到的文件?
try{
in1 = new Scanner(new File(inPath1));
in2 = new Scanner(new File(inPath2));
} catch (FileNotFoundException e){
System.err.println("File not found: " e);
System.exit(0);
}
打印出来:
File not found: java.io.FileNotFoundException: test.dat (The system cannot find the file specified)
但我只对文件名感兴趣,而不是整个字符串。
答案 0 :(得分:2)
是的,您的代码稍作修改如下:
String path = null; //track file name
try{
in1 = new Scanner(new File(path = inPath1));
in2 = new Scanner(new File(path = inPath2));
} catch (FileNotFoundException e){
System.err.println("File not found: " + path);//get recent file name
System.exit(0);
}
答案 1 :(得分:1)
是的,这是可能的。你可以通过解析异常消息来做到这一点。在这里,我使用空间分隔符来区分文件名和其他异常消息,所以我不希望文件名有空格。
try{
in1 = new Scanner(new File(inPath1));
in2 = new Scanner(new File(inPath2));
} catch (FileNotFoundException e){
String message = e.getMessage();
int i = message.indexOf(" ");
String fileName = message.substring(0, i).trim();
System.err.println("File not found: " + fileName);
System.exit(0);
}
答案 2 :(得分:1)
如果你有一个文件名数组,你可以做这样的事情
for(String s : a){
try{
files.add(new File(s));
} catch (FileNotFoundException e){
System.err.println("File not found: " + s);
}
}