- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我是编程的初学者,我想弄清楚问题出在哪里
以下函数。问题出在 scan.hasNext()
方法上 我有两个 println
语句(一个在我进行扫描之后,一个在第二种方法上)告诉我 scan.hasNext()
是否返回 true或假。奇怪的是
代码现在进入 while 循环,这是应该发生的,但是当我
删除它不在循环中的 println
语句之一和另一个打印
语句告诉我 scan.hasNext()
是 false。
这很奇怪,因为除了删除打印语句外,我没有做任何更改。此外我
发现如果我为总共 3 个打印语句再添加一个,它将再次为 false,如果我
再次添加第四个它是真的,等等。我想我只是不明白 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;
}
最佳答案
好吧,我想通了。 vishal_aim 的建议帮助我弄明白了。下面一行
buff = new BufferedWriter(new FileWriter(filename), 1);
正在将我的文件截断为零大小。原因是因为我真的打算这样做。
buff = new BufferedWriter(new FileWriter(filename, true));
首先我放了一个,因为我认为 java 在请求 boolean 值时会自动使 1 为真。其次,我试图使用 FileWriter 类的构造函数,它允许我附加到文件的末尾。如果您不在文件名中包含 true,它将创建一个新文件,将文件中的任何内容截断为 0。如果我需要将 boolean 值放在 BufferedWriter 或 FileWriter 上,这只是我忘记的一个令人厌烦的错误。另外,如果您想知道 BufferedWriter 构造函数没有给我的原因和错误是因为它有一个构造函数需要一个 int,int 是缓冲区大小。感谢大家的贡献。
关于java - scan.hasNext 应该为真时为假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13947596/
我是一名优秀的程序员,十分优秀!