我正在尝试让我的程序尝试从命令行读取文件名,但如果用户没有在命令行中输入任何内容,则会提示并请求输入文件。提示用户很简单,但是我无法弄清楚如何同时使用这两者,我觉得一旦我必须使用我的countBrackets(in)方法就会遇到麻烦,因为我无法在两次声明变量
{
public static void main(String[] args)throws IOException
{
File inputFile;
do{
Scanner console=new Scanner(System.in);
System.out.print("enter file:");
String fileName=console.next();
inputFile=new File(fileName);
Scanner in=new Scanner(new File(fileName));
countBrackets(in);
}while(!inputFile.exists());
}
答案 0 :(得分:0)
试试这个。
if(args[0]!=null&&!args[0].isEmpty()){
inputFile=new File(args[0]);
}
if(inputFile==null){
do{
Scanner console=new Scanner(System.in);
System.out.print("enter file:");
String fileName=console.next();
inputFile=new File(fileName);
Scanner in=new Scanner(new File(fileName));
countBrackets(in);
}while(!inputFile.exists());
}
答案 1 :(得分:0)
您需要查看args
的长度。如果它为0则表示用户没有传递任何内容。
你应该如下所示:
int firstArg;
if (args.length > 0) {
try {
firstArg = Integer.parseInt(args[0]);
} catch (NumberFormatException e) {
System.err.println("Argument" + " must be an integer");
System.exit(1);
}
}
教程在这里:http://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html