Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(Java、Netbeans)用扫描仪读取txt文件时遇到问题?_Java_File_Netbeans_Java.util.scanner - Fatal编程技术网

(Java、Netbeans)用扫描仪读取txt文件时遇到问题?

(Java、Netbeans)用扫描仪读取txt文件时遇到问题?,java,file,netbeans,java.util.scanner,Java,File,Netbeans,Java.util.scanner,我应该写一份作业,解决一个5乘5的数字板。程序必须读入这些数字的文件,我要做的是读取文件中的值(它们之间有空格,这是我不想要的),将所有值保存在1D数组中,然后用数据填充我的2D数组板。但我甚至无法读取文件,即使我确信我做的每件事都是正确的 我肯定我应该把txt文件与src文件夹放在一起,因为我有几乎完全相同的代码和文件位置,用于另一个读取文件的程序,它可以工作 这是我的密码 static String[][] board = new String[5][5]; static String[]

我应该写一份作业,解决一个5乘5的数字板。程序必须读入这些数字的文件,我要做的是读取文件中的值(它们之间有空格,这是我不想要的),将所有值保存在1D数组中,然后用数据填充我的2D数组板。但我甚至无法读取文件,即使我确信我做的每件事都是正确的

我肯定我应该把txt文件与src文件夹放在一起,因为我有几乎完全相同的代码和文件位置,用于另一个读取文件的程序,它可以工作

这是我的密码

static String[][] board = new String[5][5];
static String[] data = new String[25];

public static void fillBoard(String filename) throws Exception {
    Scanner scanner = new Scanner(new File(filename));

    while (scanner.hasNextLine() && !isFull(data)) {
        String currentLine = scanner.nextLine();
        for (int i = 0; i < 5; i++) {
            data = currentLine.split("[ ]");
        }
    }
}

public static boolean isFull(String data[]) {
    boolean toReturn = false;
    for (int i = 0; i < data.length; i++) {
        if (data[i] != null) {
            toReturn = true;
        } else {
            toReturn = false;
        }
    }
    return toReturn;
}

public static void printData(String data[]) {
    for (int i = 0; i < data.length; i++) {
        System.out.println(data[i]);
    }
}

public static void main(String[] args) throws Exception {
    try {
        fillBoard("testboard2.txt");
    } catch (Exception e) {
        System.out.println("Cannot find the specified file.");
    }
    printData(data);
}
静态字符串[][]板=新字符串[5][5];
静态字符串[]数据=新字符串[25];
公共静态无效填充板(字符串文件名)引发异常{
扫描仪=新扫描仪(新文件(文件名));
while(scanner.hasNextLine()&&!isFull(数据)){
字符串currentLine=scanner.nextLine();
对于(int i=0;i<5;i++){
数据=currentLine.split(“[]”);
}
}
}
公共静态布尔值已满(字符串数据[]){
布尔返回=假;
对于(int i=0;i
这是它打印出来的:

运行: 找不到指定的文件。 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 无效的 生成成功(总时间:0秒)


我不知道会出什么问题,但它需要工作,以便我做任何其他事情。调试器帮不了什么忙

您是否提供了您的
filename
以及正确的扩展名?在
main()
中捕获
Exception
是非常糟糕的做法。您应该删除try catch,并为
fillBoard()
抛出
语句。这样,您将得到一条更具体的错误消息,从而更容易解决问题谢谢您的评论。我的问题最终还是文件的位置——这很令人惊讶,但至少我找到了解决方案。我想我的代码还可以。很高兴知道什么是好的实践与否。我只学了两个学期的Java,所以我还有很多东西要学。