尝试使用java.util.Scanner+;读取文本文件时出现异常java.util.NoSuchElementException;将文件写入不同的矩阵
我是java新手,我写这段代码是为了总结两个矩阵。 这两个矩阵都是通过读取input.in文件来填充的。 关于该代码,我有两个问题: 1.在执行过程中,我遇到了这个错误: 我不知道是什么导致了这个错误 线程“main”java.util.NoSuchElementException中的异常 位于java.util.Scanner.throwFor(Scanner.java:907) 下一步(Scanner.java:1530) 位于java.util.Scanner.nextInt(Scanner.java:2160) 位于java.util.Scanner.nextInt(Scanner.java:2119) 在s.s.main(s.java:36) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 我的代码是:尝试使用java.util.Scanner+;读取文本文件时出现异常java.util.NoSuchElementException;将文件写入不同的矩阵,java,java.util.scanner,Java,Java.util.scanner,我是java新手,我写这段代码是为了总结两个矩阵。 这两个矩阵都是通过读取input.in文件来填充的。 关于该代码,我有两个问题: 1.在执行过程中,我遇到了这个错误: 我不知道是什么导致了这个错误 线程“main”java.util.NoSuchElementException中的异常 位于java.util.Scanner.throwFor(Scanner.java:907) 下一步(Scanner.java:1530) 位于java.util.Scanner.nextInt(Scanne
package example;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class aaaa {
public static void main (String [] args) throws FileNotFoundException{
int [][] matrix1 = new int[4][4];
int [][] matrix2 = new int[4][4];
int [][] matrix3 = new int[4][4];
String file = "c:\\input.txt";
Scanner text = new Scanner(new File(file));
while (text.next()!=null){
for (int i=0;i<4;i++)
for (int j=0;j<4;j++)
matrix1[i][j]= text.nextInt();
}
while (text.next()!=null){
for (int i=0;i<4;i++)
for (int j=0;j<4;j++)
matrix2[i][j]= text.nextInt();
}
for (int i=0;i<4;i++)
for (int j=0;j<4;j++)
System.out.println(matrix3[i][j] + matrix3[i][j]);}}
包示例;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.util.Scanner;
公共级aaaa{
公共静态void main(字符串[]args)引发FileNotFoundException{
int[][]矩阵1=新的int[4][4];
int[]matrix2=新int[4][4];
int[][]矩阵3=新的int[4][4];
String file=“c:\\input.txt”;
扫描仪文本=新扫描仪(新文件(文件));
while(text.next()!=null){
对于(int i=0;i异常是由执行next
时的Scanner
对象引发的,因此在我看来text
已耗尽其输入源
您应该控制在text
中有更多的元素,然后在尝试时要求它提供更多的整数,但不是像在外循环中那样,而是在最深层次
现在,如果可以在开始循环之前获得一个元素,那么您正在加载4x4=16个元素的束
尝试:
for (int i=0;i<4;i++)
{
if(!text.hasNextInt()) break;
for (int j=0;j<4;j++)
{
if(!text.hasNextInt()) break;
matrix1[i][j]= text.nextInt();
}
}
用于(int i=0;i@user3496654你能编辑你的问题来包含你的新代码吗?@ USSR99664我认为这第二个消息来自另一个源代码,<代码> S.Smain Eng/< >不是你发布的主要方法。@ USSR996664我解决了你的问题吗?在这种情况下你可以接受我的答案。如果你不认为我解决了你的问题,那就不要这样做了。答案很差。我对这段代码有另一个问题。我可以在这里提问还是打开其他主题?@user3496654这取决于情况,如果它与您发布的代码相关,您可以编辑您的问题。否则,您可以问其他问题。
for (int i=0;i<4;i++)
{
if(!text.hasNextInt()) break;
for (int j=0;j<4;j++)
{
if(!text.hasNextInt()) break;
matrix1[i][j]= text.nextInt();
}
}