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