我有扫描仪:

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按顺序执行)

最佳答案

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

另外,您不应该使用双斜杠。

10-07 12:51