【发布时间】:2015-06-16 21:30:09
【问题描述】:
我正在尝试通过读取 txt 文件来创建列表。例如:
12345; Mary Jane ; 20
12365; Annabelle Gibson; NA
每一行包含:数字;姓名;等级(等级可以是字符串或整数)
我创建了以下方法;
public static List <Pauta>leFicheiro( String nomeF) throws FileNotFoundException{
List<Pauta> pautaT = new LinkedList<Pauta>();
try {
Scanner s = new Scanner(new File (nomeF));
try{
List<Pauta> pautaS =pautaT;
while ( s.hasNextLine()){
String line = s.nextLine();
String tokens[]= line.split(";");
if(s.hasNextInt()) {
System.out.println ("next int = " + s.nextInt());
}
pautaS.add(new Pauta (s.nextInt(), tokens[1],tokens[2]);
}
pautaT = pautaS;
}
finally {
s.close();
}
}
catch (FileNotFoundException e){
e.printStackTrace();
}
catch (ParseException e){
e.printStackTrace();
}
return pautaT;
}
Pauta 是一个接收参数(int、String、String)的类,我认为 Grade as a String 会使其更简单,但如果您有关于如何通过拥有它来创建 List(主要目标)的想法String 或 int 我将不胜感激。
现在的问题是:s.nextInt() 部分返回错误:InputMismatchException
所以我输入了以下代码:
catch (InputMismatchException e) {
System.out.print(e.getMessage());}
表示它返回一个空值。
我该如何解决这个问题?
【问题讨论】:
-
即使
s.hasNextInt()返回 false,您也正在调用s.nextInt()。如果没有下一个 int,您希望s.nextInt()返回什么?
标签: java exception collections java.util.scanner readfile