0

我试图让我的程序尝试从命令行读取文件名,但如果用户没有在命令行中键入任何内容,它会提示并要求输入文件。提示用户很简单,但我无法弄清楚如何同时拥有两者,我觉得一旦我必须使用我的 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());
  }
4

2 回答 2

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());
}
于 2013-10-26T04:13:45.560 回答
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

于 2013-10-26T04:13:59.807 回答