Scanner.next返回文件的路径?

时间:2014-07-27 01:32:58

标签: java java.util.scanner

我有一台扫描仪:

m = new Scanner(Values.mazegen.replace("\\","//") + "//maze.txt");

(Values.mazegen.replace(“\”,“//”)+“//maze.txt”打印为C:// users // myusername // Desktop) 当我使用m.next()时 它返回C://users//myusername//Desktop//maze.txt。我不知道为什么...? 完整代码:

public void openFile(){
        try {
            if(Values.custom == true && Values.customSolved == false){
            m = new Scanner(new File(Values.MazeFile));
            }else if(Values.customSolved == true || Values.custom == false){
            m = new Scanner(Values.mazegen.replace("\\","//") + "//Maze.txt");
            }else{
                m = new Scanner(Values.mazegen.replace("\\","//") + "//Maze.txt");
            }
        } catch (FileNotFoundException e) {
            System.out.println("File not found!");
        }
        if(Values.custom == true && Values.customSolved == false){
            m.nextLine();
        }
    }

    public void readFile(){
        System.out.println("Got this far...");
        while(m.hasNext()){
            for(int i = 0; i < Values.x; i++){
                Maze[i] = m.next();
                System.out.println(Maze[i]);
            }
            m.nextLine();
        }
    }

    public void closeFile(){
        m.close();
    }

(OpenFile,readFile和closeFile按顺序执行)

1 个答案:

答案 0 :(得分:1)

Scanner(String)扫描您传递的字符串文字,而不是文件。使用new Scanner(new File("path to file"))

扫描文件

此外,你不应该使用双正斜杠。