【发布时间】:2012-12-06 12:32:27
【问题描述】:
所以我是编程的初学者,我正在尝试找出问题所在
以下功能。问题在于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;
}
【问题讨论】:
-
你哪里有两个 println 语句?我只看到一个。
-
显示输入文件的示例内容
标签: java filewriter bufferedwriter