2014-10-03 2 views
0

Моего входной файл:Чтение входного файла в 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) 

Пожалуйста, помогите меня. ИЛИ если есть лучший метод.

+1

Вы имеете в виду «каждый символ» или «каждая строка»? Каждый символ будет «h», «g», «f». – Stewart

ответ

0

Как объясняется в документах StringTokenizer, вы должны использовать метод hasMoreTokens для цикла, вместо сравнения next() с null.

StringTokenizer st = new StringTokenizer(...); 
while (st.hasMoreTokens()) { 
    System.out.println(st.nextToken()); 
} 

И снова, как объясняет документы, split это лучший вариант, чтобы разделить строку в целом.

Наконец, поскольку вы пытаетесь прочитать файл по строкам, вы должны проверить библиотеки, такие как Apache Commons, у них есть то, что вы ищете в FileUtils.lineIterator.

0
for (String s : "/home/gcj/finals".split("/")) { 
    System.out.println(s); 
} 
+0

. Вы должны добавить некоторое объяснение, почему это ответ. – Whymarrh

0

Если вы хотите, чтобы прочитать файл, вы можете взять классы IO, In и Out от here. Затем вы можете просто вызвать IO.in.readFile(String filename).

Надеюсь, это поможет.

Clemencio Morales Lucas.

Смежные вопросы