【发布时间】:2015-11-12 02:42:45
【问题描述】:
我希望用户在命令行上输入文件名。如果他们不输入任何内容,我应该打印信息,说明文件未处理并退出。这是我的 try catch 块
try{
parser.openFile(args[0]);
if(parser.getCounter() == 3)
{
System.out.println("File was processed: true");
}
else
{
System.out.println("File was processed: false. Missing information.");
}
//found = true;
}
catch (IOException e)
{
e.printStackTrace();
System.out.println("File was processed: false. Re-enter filename.");
//fName = keyboard.nextLine();
}
openFile 方法在我的课堂上,它就在这里,以防万一有人需要它:
public void openFile (String filename)throws IOException{
fis = new FileInputStream(filename);
br = new BufferedReader(new InputStreamReader(fis));
String thisLine;
thisLine = br.readLine();
while(thisLine != null)
{
lines.add(thisLine);
thisLine = br.readLine();
}
}
不知何故“文件已处理:错误。重新输入文件名。”当命令行中没有文件名时不会打印出来。谁能帮帮我?
【问题讨论】:
-
你在控制台看到了什么错误?
-
尝试检查 args 的长度以确定用户是否输入了参数,而不是依赖 FileInputStream 来抛出异常。
-
我可以使用 if-else 语句检查,但是教授希望我们使用 try-catch ......我应该如何将它融入 try-catch 块?
-
尝试使用 catch (Exception e) 代替 IOException 并检查结果。