2013-04-26 110 views
0

我想知道如何将键盘输入并将其保存为变量,以便我可以将其与下面的代码一起使用。将键盘输入保存为变量

代码:

public void readMaze(){ 
    Scanner reader = null; 
    try {   
     reader = new Scanner(new FileReader("Maze.txt")); 
     colSize = reader.nextInt(); 
     rowSize = reader.nextInt(); 
     finishRow = reader.nextInt(); 
     finishCol = reader.nextInt(); 
     startRow = reader.nextInt(); 
     startCol = reader.nextInt(); 

而不必“Maze.txt”我希望有一个变量存在,可以改变我每次运行程序的时候,所以我不会有继续编辑程序的时候我的想要使用不同的文件。

回答

2

您可以使用扫描仪本身获取文件名:

System.out.println("Please input the file name to use: "); 
Scanner reader = new Scanner(System.in); 
String fileName = reader.next(); 

然后用你的方法继续进行像往常一样,重新使用一个新的扫描仪对象相同的扫描仪变量,这次传递的文件名,你捕获早期版本:

try {   
    reader = new Scanner(new FileReader(fileName)); 
    ... 
} 

使用此功能,您可以在程序运行时动态更改文件名。

+0

非常感谢您的帮助。 – Jaylon253 2013-04-28 15:12:03

1

我可能会使用的命令行参数:

public static void main(String[] args) 
{ 
    final String mazeFilename = args[0]; // perhaps check if args.length > 0 
    ... 
} 

然后

java YourPrgm Maze.txt 
1

您可以尝试通过控制台扫描它们并将它们从字符串更改为整数。

public static void main(String[] args) { 

    int colSize, rowSize, finishRow, finishCol, startRow, startCol = 0; 

    // note, through console 

    Scanner in = new Scanner(System.in); 

    System.out.print("Enter colSize:"); 
    colSize = Integer.parseInt(in.nextLine()); 

    System.out.print("Enter rowSize:"); 
    rowSize = Integer.parseInt(in.nextLine()); 

    System.out.print("Enter finishRow:"); 
    finishRow = Integer.parseInt(in.nextLine()); 

    System.out.print("Enter finishCol:"); 
    finishCol = Integer.parseInt(in.nextLine()); 

    System.out.print("Enter startRow:"); 
    startRow = Integer.parseInt(in.nextLine()); 

    System.out.print("Enter startCol:"); 
    startCol = Integer.parseInt(in.nextLine()); 
    } 
}