2017-04-06 92 views
1

它不会提示用户输入文件?请帮我如何使用扫描仪从命令行读取文件

public static void main (String args []){ 
if (0 < args.length) { 
    File inFile = new File(args[0]); // Make sure the file exists, can read, etc... 
    while (!inFile.exists()) { 
     Scanner console = new Scanner (inFile); 
     System.out.println ("Input file:"); //prompt user to input file 
     String inFileName = console.nextLine(); 
     System.out.println ("Input file:"); //prompt user to input file 
     inFileName =inFileName.trim(); //get rid of whitespace 
      System.out.println(inFileName); 
     inFile = new File (inFileName); 
     } 
+0

你混淆了args []的实际含义。 '字符串参数[]'指的是你可以给主要方法的程序参数。 – Ishnark

回答

1

老办法:

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String userInput = reader.readLine(); 

的新方法:

Console console = System.console(); 
if(console != null) { String userInput = console.readLine(); 
+0

我希望我可以使用BufferedReader,但我不能上课,谢谢:) –

+0

扫描仪扫描仪=新扫描仪(System.in);然后,您可以使用各种scanner.getXXX()方法之一调用get值,具体取决于您从用户需要的值的类型。 –

+0

我试过while循环的内部和外部,仍然没有提示任何输入? –

1

对于扫描仪,您需要使用。

Scanner console = new Scanner(System.in); 
0

我想你可以用几行代码完成预期的任务。

public static void main(String[] args) { 
     Scanner userInput = new Scanner(System.in); 
     System.out.println("Input file : "); 
     String inFile = userInput.next(); 
     System.out.println("Input file is " + inFile); 
    }