“线程中的异常”;“主要”;java.util.NoSuchElementException读取文件
嘿,我正在学习java,我不知道为什么它总是给我一个错误“线程中的异常”;“主要”;java.util.NoSuchElementException读取文件,java,Java,嘿,我正在学习java,我不知道为什么它总是给我一个错误 “线程”main“java.util.NoSuchElementException”中的异常“如果有人向我解释发生这种情况的原因,我将非常感激。您调用x.next()3次,您应该只调用一次,您正在测试x.hasNext(),但随后尝试从扫描仪中提取三个项目。看起来您的扫描仪的可用项目少于三个。如果(例如)剩下2个项目,x.hasNext()将返回true,但您的第三个x.next()将抛出一个NoTouchElementException
“线程”main“java.util.NoSuchElementException”中的异常“如果有人向我解释发生这种情况的原因,我将非常感激。您调用x.next()3次,您应该只调用一次,您正在测试
x.hasNext()
,但随后尝试从扫描仪中提取三个项目。看起来您的扫描仪的可用项目少于三个。如果(例如)剩下2个项目,x.hasNext()
将返回true,但您的第三个x.next()
将抛出一个NoTouchElementException。新扫描仪(“C:\\Users\\adamp\\Desktop\\test\\chinese.txt”)代码>并不像你想象的那样。我的文件中有12项,我正在学习一个教程,所以我不知道是否是这样。也许教程已经过时了。你能推荐一个关于写入文件和读取文件的好教程吗。谢谢您是否访问问题顶部的重复链接(您可能需要重新加载此选项卡才能查看)?它解决了你的问题吗?是的,谢谢,我通过查看其他线程解决了它。如果我想连续打印3个项目,然后下一个项目,它应该是什么样子
import java.util.*;
import java.io.*;
public class ReadingFiles {
private Scanner x;
public void openFile(){
try{
x = new Scanner("C:\\Users\\adamp\\Desktop\\test\\chinese.txt");
}//try
catch(Exception e){
System.out.println("could not find file");
}//catch
}//openFile()
public void readFile(){
while(x.hasNext()){
String a = x.next();
String b = x.next();
String c = x.next();
System.out.printf("%s %s %s\n", a,b,c);
}//while
}//readFile()
public void closeFile(){
x.close();
}//closeFile()
public static void main(String[] args){
ReadingFiles cz = new ReadingFiles();
cz.openFile();
cz.readFile();
cz.closeFile();
}//main
}//class