[英]Java Scanner - While Loop not continuing
I'm running a bit of code to read data from a file and then split each line into an array for easier calculating.我正在运行一些代码来从文件中读取数据,然后将每一行拆分为一个数组以便于计算。
However, I've come across a problem where my while loop isn't continuing despite the fact I know there is more data in the text file.但是,我遇到了一个问题,尽管我知道文本文件中有更多数据,但我的 while 循环没有继续。
Any help with the problem would be greatly appreciated!对问题的任何帮助将不胜感激!
public void test() throws IOException {
FileReader fr = null;
Scanner sc = null;
String file_name = "data.txt";
try {
fr = new FileReader(file_name);
sc = new Scanner(fr);
while(sc.hasNextLine()){
int year = 0;
int month = 0;
double sales_total = 0;
String lines[] = sc.nextLine().split(" ");
for (int i = 0; i < lines.length; i++){
int value = Integer.valueOf(lines[i]);
if (value > 2000) {
year = value;
}
else if (i == 1){
month = value;
}
else {
sales_total += value;
}
System.out.println(sales_total);
}
System.out.println(year + " - " + month + " - "+sales_total);
}
}
catch(IOException e) {
System.out.println(e);
}
finally {
if (fr != null) { fr.close();}
if (sc != null) { sc.close();}
}
}
data.txt数据.txt
2016 02 5 18 12
2016 12 14 10 3 5 6 8 20 7 10
2016 09 17 3 16 18 19 10 6 10
2016 10 5 3 12 4 12 15
2016 11 18 19 16 2
2017 01 5 5 4 11
2017 02 41 3
2017 06 3 6 18
2017 07 15 18 15 12 9 15
2017 11 9 8 9 4 20 20 19 3
2018 01 19 19 3 10 20 20 18 14 3
2017 12 8 13 18 6
2018 11 10 2 11 8 17 8 6 18 15 1
sc.nextLine and sc.hasNextLine are blocking calls by design, so it will remain blocking until new input comes in. see Scanne.hasline() documentation sc.nextLine 和 sc.hasNextLine 在设计上会阻塞调用,因此它会一直阻塞直到新输入进来。请参阅Scanne.hasline() 文档
Could it be that some lines in code are missing CR LF delimiter?可能是代码中的某些行缺少 CR LF 分隔符? I took you sample, opened it with notepad++ and viewed the whitespace (under view->show symbol).
我拿了你的样本,用记事本++打开它并查看空格(在视图->显示符号下)。 and saw the following:
并看到以下内容:
...
2017 11 9 8 9 4 20 20 19 3 CR LF
2018 01 19 19 3 10 20 20 18 14 3 CR LF
2017 12 8 13 18 6 CR LF
2018 11 10 2 11 8 17 8 6 18 15 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.