我知道我需要使用hasNextLine()来推进这一行-但是当我引用hasNextLine()时,我不确定为什么它仍然没有退出while循环:
我在这里使用扫描仪(sc)读取输入文件
while(sc.hasNextLine()){
//read post specifications from line
String postspecs = sc.nextLine();
//split line
String[] postspecs_s = postspecs.split(", ");
//create post
reddit.findUser(stripExtension(argfile.getName())).
addPost(postspecs_s[0], PostType.valueOf
(postspecs_s[1]), postspecs_s[2]);
System.out.println("created");
}
最佳答案
仅当达到EOF(文件末尾)char时,“hasNextLine”才会返回false。停止读取的一种简单方法是等待从System.in中读取的标记值。
所以你会有类似
String s = sc.nextLine();
while(!s.equals(SENTINEL))
//proceed and dont forget to re-read.
我认为ctrl + z会将EOF发送到Windows,iPod atm上的system.in,因此无法测试。