所以我是编程的初学者,我试图找出问题所在
以下功能。问题在于scan.hasNext()
我有两个方法println
语句(一个在我进行扫描之后,一个关于第二种方法)告诉我scan.hasNext()
返回true还是false。奇怪的是
现在的代码进入了应该发生的while循环,但是当我
删除println
它不进入循环的语句之一,另一个打印
声明告诉我scan.hasNext()
是假的。
这很奇怪,因为除了删除打印语句之外,我什么也没做。此外我
发现如果我为总共 3 个打印语句再添加一个,它将再次为假,如果我
添加第四个,这又是真的,等等。我想我只是不明白 hasNext 是如何工作的,因为我
不知道如何跟随“光标”应该在哪里。
public void createFile(String filename){
final File file = new File(filename);
try{
scan = new Scanner(file);
**System.out.println(scan.hasNext());**
buff = new BufferedWriter(new FileWriter(filename), 1);
}
catch(Exception e1){
try{
buff = new BufferedWriter(new FileWriter(filename));
scan = new Scanner(file);
}
catch(Exception e2){
System.out.println("Error trying to create file");
}
}
}
public String readFile(){
String fileContents = "";
**System.out.println(scan.hasNext());**
if(scan.hasNext())
while(scan.hasNext())
fileContents = fileContents + scan.next()+" "+scan.next()+" "+scan.next();
return fileContents;
}