Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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.util.Scanner+;读取文本文件时出现异常java.util.NoSuchElementException;将文件写入不同的矩阵_Java_Java.util.scanner - Fatal编程技术网

尝试使用java.util.Scanner+;读取文本文件时出现异常java.util.NoSuchElementException;将文件写入不同的矩阵

尝试使用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

我是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)

我的代码是:

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();
    }
}