Java 为什么我的代码在无限循环中运行?将来自两个不同文件的内容放入两个数组

Java 为什么我的代码在无限循环中运行?将来自两个不同文件的内容放入两个数组,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,有人能告诉我为什么这个代码无限运行吗?我想尽一切办法来解决它,但还是没办法解决。代码的前半部分工作正常。但后半段不起作用 public static void main(String[] args) throws FileNotFoundException{ Scanner in; in = new Scanner (new File ("ratings")); int[] [] ratings = new int [30] [20]; int j = 0;

有人能告诉我为什么这个代码无限运行吗?我想尽一切办法来解决它,但还是没办法解决。代码的前半部分工作正常。但后半段不起作用

public static void main(String[] args) throws FileNotFoundException{
    Scanner in;
    in = new Scanner (new File ("ratings"));

    int[] [] ratings = new int [30] [20];
    int j = 0;

    while (in.hasNextLine()){
        for (int i = 0; i < 20; i++){
            ratings [j] [i] = in.nextInt();
        }
        j++;
    }
    in.close();
    for (int i = 0; i < ratings.length; i++){
        for (int k = 0; k < ratings[i].length; k++){
            System.out.print(ratings [i][k] + "");
        }
        System.out.println();
    }

    Scanner in1;
    in1 =  new Scanner(new File("books"));

    String[] books = new String [20];

    while (in1.hasNextLine()) {
        for (int i = 0; i < books.length; i++){
            books [i] = in1.toString(); 
        }
    }
    in1.close();
}
publicstaticvoidmain(字符串[]args)抛出FileNotFoundException{
扫描仪输入;
in=新扫描仪(新文件(“评级”);
国际贸易[]评级=新国际贸易[30][20];
int j=0;
while(在.hasNextLine()中){
对于(int i=0;i<20;i++){
评级[j][i]=in.nextInt();
}
j++;
}
in.close();
对于(int i=0;i
在最后一个循环中,由于书籍是字符串,您可能有输入错误,可能会根据您的文件结构和格式将in1.toString更改为in1.next()或in1.nextLine():

books[i]=in1.toString()==e.g=>
books[i]=in1.nextLine()


干杯

你的代码有点难读。请考虑改善你的压痕。每个嵌套的代码块、每个for循环、while循环等都应该缩进4个空格。您在1.toString()中调用
的循环从不消耗
中的任何内容,因此是一个无限循环。谢谢大家的评论。我对stack还不熟悉,但我还没有掌握按stack希望的方式缩进的窍门。我缩进的方式对stack也不起作用。非常感谢。我是斯塔克的新手,但我还没有学会如何像斯塔克希望我那样去做。没问题。我们都必须在某个时候学习。继续学习和分享!:)