我的输入文件:
/home/gcj/finals
我希望在/
之后拥有每个角色
我的方法:
StringTokenizer sr = new StringTokenizer(br.readLine());
String s = sr.nextToken("/");
while(s != null){
System.out.println(s);
s = sr.nextToken("/");
}
输出:
gcj
finals
Exception in thread "main" java.util.NoSuchElementException
at java.util.StringTokenizer.nextToken(Unknown Source)
at java.util.StringTokenizer.nextToken(Unknown Source)
at jobs.TestClass.main(TestClass.java:118)
请帮帮我。或者,如果有更好的方法。
答案 0 :(得分:1)
使用hasMoreTokens()。
而不是while(s!= null)答案 1 :(得分:0)
正如StringTokenizer文档所解释的那样,您必须使用hasMoreTokens
方法循环,而不是将next()与null进行比较。
StringTokenizer st = new StringTokenizer(...);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
同样,正如文档所解释的那样,split
是分裂字符串的更好选择。
最后,由于您尝试逐行阅读文件,因此您应该检查Apache Commons之类的库,它们具有您在FileUtils.lineIterator中寻找的内容。< / p>
答案 2 :(得分:0)
for (String s : "/home/gcj/finals".split("/")) {
System.out.println(s);
}
答案 3 :(得分:0)
如果您想阅读文件,可以从here获取IO,In和Out
类。然后,您只需调用IO.in.readFile(String filename)
。
希望它有所帮助。
Clemencio Morales Lucas。