gpt4 book ai didi

Java NextBoolean() 从文本文件中读取

转载 作者:行者123 更新时间:2023-11-30 03:02:09 25 4
gpt4 key购买 nike

嘿伙计们,我在尝试从文本文件中读取时遇到这些错误:

Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at application.Test.main(Test.java:27)

通过尝试找出问题所在,我认为它是 nextBoolean() 因为当我删除它时我没有收到任何错误。

这是我的代码:

package application;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Scanner;

public class Test {

public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub

int age = 0;
String type = null, name = null, breed = null, desc = null;
boolean male = false;

File file = new File("animals.txt");
Scanner kb = new Scanner(file);

while (kb.hasNext()) {

age = kb.nextInt();
kb.nextLine();
type = kb.nextLine();
male = kb.nextBoolean();
name = kb.nextLine();
breed = kb.nextLine();
desc = kb.nextLine();

Animal animal = new Animal(age, type, male, name, breed, desc);

AnimalList.add(animal);

}
AnimalList.printAnimalList();
kb.close();
}


}

这是文本文件内容

6
Dog
false
Fred
Jack Rusell
dog is in poor condition
5
Cat
false
James
Russian blue
Good
9
Cat
true
Felix
Tabby
Cat in good condition
4
Bird
true
chirpy
Parrot
Parrot in good condition

如果有任何帮助,我将不胜感激。过去几个小时我一直在谷歌上搜索,但找不到任何解释。

最佳答案

您在 nextBoolean 之后缺少对 nextLine 的调用。

nextBooleannextInt 方法不会读取您所在行的换行符,它会在读取 booleanint

您通过调用 nextLine 直接检索 name,并且您期望“Fred”,但得到一个空字符串,因为您仍在同一行。 “Fred”实际上会被分配给 breed 并且您的读取已损坏。

关于Java NextBoolean() 从文本文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35687857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com