Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.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.NoSuchElementException:未找到任何行_Java_Exception_Line_Element_Main - Fatal编程技术网

“线程中的异常”;“主要”;java.util.NoSuchElementException:未找到任何行

“线程中的异常”;“主要”;java.util.NoSuchElementException:未找到任何行,java,exception,line,element,main,Java,Exception,Line,Element,Main,它应该从一个名为carlist.txt的文件中读取两辆车的数据,然后以正确的格式打印两辆车的数据 carlist.txt是一个包含以下内容的文本文件: import java.io.File; import java.io.FileNotFoundException; import java.util.*; public class CarReader2 { String name, speed, acc; public CarReader2(String carName,

它应该从一个名为carlist.txt的文件中读取两辆车的数据,然后以正确的格式打印两辆车的数据

carlist.txt
是一个包含以下内容的文本文件:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;

public class CarReader2 {
    String name, speed, acc;

    public CarReader2(String carName, String carSpeed, String carAcc){
    name = carName;
    speed = carSpeed;
    acc = carAcc;
    }

    public String toString(){
    return "Name of car: " +name+ "\nSpeed of car: " +speed+"\nAcceleration of car: " +acc+"\n";
    }

    public static void main(String[] args) {

    File file = new File("carlist.txt");

    try {

        Scanner sc = new Scanner(file);

        while (sc.hasNextLine()) {

            String c1Name = sc.nextLine();
            String c1Speed = sc.nextLine();
            String c1Acc = sc.nextLine();
            CarReader2 car1 = new CarReader2(c1Name,c1Speed,c1Acc);
            car1.speed = c1Speed;
            car1.acc = c1Acc;

            String c2Name = sc.nextLine();
            String c2Speed = sc.nextLine();
            String c2Acc = sc.nextLine();
            CarReader2 car2 = new CarReader2(c2Name,c1Speed,c1Acc);
            car2.speed = c2Speed;
            car2.acc = c2Acc;

            System.out.println("Information on both cars");
            System.out.println("First car:");
            System.out.println(car1.toString());
            System.out.println("Second car:");
            System.out.println(car2.toString());
        }
        sc.close();
    } 
    catch (FileNotFoundException e) {
        e.printStackTrace();



    }
    }
}
程序应该打印出来

jonathan 3 7
dio 8 2

该程序已编译,但运行不正确,并在最顶端显示我发布的错误。

您使用的nextLine方法错误。名称、速度和加速度在同一行中,但您使用3种下一行方法来读取它们。当您试图从一个只有2行的文件中读取6行时,就会发生这种情况。使用
sc.next()
而不是
sc.nextLine()

你读的行太多了。文件中只有两行,但您正在尝试读取6。您可以将文本文件更改为:

Information on both cars
First car:
Name of car: jonathan
Speed of car: 3
Acceleration of car: 7

Second car:
Name of car: dio
Speed of car: 8
Acceleration of car: 2

或者你可以读一行,把你想要的信息分出来。

我不知道这么简单,非常感谢!
Information on both cars
First car:
Name of car: jonathan
Speed of car: 3
Acceleration of car: 7

Second car:
Name of car: dio
Speed of car: 8
Acceleration of car: 2
jonathan 
3 
7
dio 
8 
2