我试图读取包含表格中数据的文件,
0 160 76 160
0 320 11 320
0 960 470 960
960
0 12 6 12
0 24 7 24
0 1500 302 1500
3000
0 70 33 70
0 140 60 140
0 784 74 784
3920
我想跳过包含单个值的每4行(例如4,8,12,..等)。 我试过这种方式,
Scanner scan = new Scanner(new FileInputStream("demofile.txt"));
int linenum = 0;
while(scan.hasNextLine()){
if(linenum != 0 && linenum % 4 == 0){
linenum++;
continue;
}
else{
String str = scan.nextLine();
StringTokenizer st = new StringTokenizer(str, " ");
//Extract four tokens from single line
String a = st.nextToken();
String b = st.nextToken(); // This line throws java.util.NoSuchElementException
//and so on..
//other stuff
...
linenum++;
}
}
然而,它不起作用,我得到了以下错误跟踪:
Exception in thread "main" java.util.NoSuchElementException
at java.util.StringTokenizer.nextToken(StringTokenizer.java:332)
at ReadDemo.main(ReadDemo.java:48) //line 48 is second `st.nextToken()` in above code
表示我正在读取文件的末尾, 上述逻辑有什么问题? 请帮忙。感谢。
答案 0 :(得分:2)
从1开始亚麻,您的程序将正常运行。 而且,亚麻的增量很难实施。 尝试这样的事情:
linenum = 1;
while (scan.hasNextLine())
{
String line = scan.nextLine();
if ((linenum % 4) > 0)
{
StringTokenizer stringTokenizer = new StringTokenizer(line, " ");
... blah
}
++linenum;
}