2013-04-09 3 views
0

Я пишу кодер «Переместить на передний план», который читает файл, который затем анализирует файл в списке. Он отлично работает с кодировкой, однако он работает только с файлами только одной строки, я думаю, проблема в цикле while.Чтение текстового файла с помощью java

Вот код:

while ((line = br.readLine()) != 
     null) // While the line file is not empty after reading a line from teh text file split the line into strings 
{ 
    splitArray = line.split(" "); 
} 

for (int i = 0; i <= splitArray.length - 1; 
    i++) // for every string in the array test if it exists already then output data accordinly 
{ 
    if (FirstPass.contains(splitArray[i])) { 
    System.out.println(FirstPass.lastIndexOf(splitArray[i])); 
    FirstPass.addFirst(splitArray[i]); 
    FirstPass.removeLastOccurrence(splitArray[i]); 
    } else if (!FirstPass.contains(splitArray[i])) { 
    FirstPass.addFirst(splitArray[i]); 
    System.out.println("0 " + splitArray[i]); 
    } 
} 

System.out.println(" "); 
for (String S : FirstPass) { 
    System.out.println(S); 
} 
+0

К сожалению уш является буферном читатель –

+0

Пожалуйста, измените ваш пост и исправить отступ. Замените вкладки соответствующим количеством пробелов. –

+3

Ваш первый цикл while считывает весь файл и отбрасывает все данные, кроме последней строки. –

ответ

0

Ваш код, который разбирает splitArray находится вне цикла в то время как .. поэтому только последняя строка будет обрабатываться.

Чтобы обработать каждую строку, положить, что весь for() блок внутри время цикла ..

while((line = br.readLine()) != null) // While the line file is not empty after reading a line from teh text file split the line into strings 
{ 
    splitArray = line.split(" "); 


    for(int i = 0; i <= splitArray.length - 1; i++)  // for every string in the array test if it exists already then output data accordinly 
    { 
     //.......... 
    } // end for 
} // end while 
+0

Спасибо тебе, Кал, я знал, что это будет что-то маленькое и глупое. Спасибо за то, что вы нашли время ответить на мой вопрос. –

0

Брекеты в неправильном месте:

while((line = br.readLine()) != null) 
{ 
    splitArray = line.split(" "); 
} // This } shouuldn't be here... 
+0

Удаление скобки приведет к ошибке компиляции кода. – MathSquared

+0

@ MathSquared11235 100% правильный. Я указываю на общую область проблемы, не предоставляя полный код для чего-то такого локализованного. – John3136

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