在java中读取输入文件

时间:2014-10-03 15:41:00

标签: java

我的输入文件:

/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)

请帮帮我。或者,如果有更好的方法。

4 个答案:

答案 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。