下面的代码片段引发错误1.当输入文件路径无效时 - FILENOTFOUNDEXCEPTION 2.当输出文件在excel中打开时 - FILENOTFOUNDEXCEPTION说该文件在另一个进程中打开
我想建议用户检查输入文件路径或关闭打开的Excel(或在记事本中打开)。我如何单独捕捉这些?
try(FileReader fr = new FileReader("D:/Test.log");
BufferedReader br = new BufferedReader(fr);) {
doSomething(br);
//writing to CSV
String[] arr = {"aaa","bbb"};
FileWriter outputfile= new
FileWriter("D:/output.csv",false);
CSVWriter writer = new CSVWriter(outputfile);
writer.writeNext(arr);
writer.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
您应该将代码分隔为两个try / catch语句
BufferedReader br;
try {
FileReader fr = new FileReader("D:/Test.log");
br = new BufferedReader(fr);
} catch (FileNotFoundException e) {
e.printStackTrace();
log.error("Input file not found");
} catch (IOException e) {
e.printStackTrace();
}
doSomething(br);
//writing to CSV
String[] arr = {"aaa","bbb"};
try {
FileWriteroutputfile = new FileWriter("D:/output.csv",false);
CSVWriter writer = new CSVWriter(outputfile);
writer.writeNext(arr);
writer.close();
} catch (IOException e) {
e.printStackTrace();
log.error("Output file already in use");
}