2013-11-08 3 views
0

Мне нужно прочитать из файла, а затем поместить слова, которые находятся в ArrayList.junit.Framework.AssertionFailedError пытается прочитать из файла в ArrayList

public boolean load(String filename) 
{ 

    try 
    { 
     BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("wordlist.txt"))); 
     String line = null; 
     while ((line = br.readLine()) != null) 
     { 
      String[] values = line.split("\n"); 
      wordlist.add(new WordPair(answer, question)); 
     } 
    } catch (IOException ioe) 
    { 
     Logger.getLogger(Controller.class.getName()).log(Level.SEVERE, null, ioe); 
    } 

    return false; 
} 

Ниже приведен код тестером я использовал:

public void testLoad() { 
    assertTrue(wordPairDemo.save(fileName));  
    wordPairDemo.clear();      
    assertTrue(wordPairDemo.load(fileName)); 
    assertTrue(wordPairDemo.size() == 3); 
    assertEquals(wordPairDemo.lookup("hest"),"horse"); 
    assertEquals(wordPairDemo.lookup("hus"), "house"); 
    assertEquals(wordPairDemo.lookup("båd"),"boat"); 
} 

Я получаю junit.Framework.AssertionFailedError, и я не уверен, что является причиной его. Я пробовал несколько разных способов сделать это, через сканеры и т. Д., Но я всегда получаю эту ошибку, и я не уверен, что с ней делать.

Любая помощь оценена! :)

ответ

0

По вашему примеру в комментариях ниже, файл содержит пары в одной строке: horse,hesthouse,husboat,båd

вы должны разделить в соответствии с фактическим ограничителем, который вы используете - ,. т.д .:

public boolean load(String filename) 
{ 
    try 
    { 
     BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("wordlist.txt"))); 
     String line = null; 

     // I'm leaving this loop under the assumption that there may be multiple lines 
     while ((line = br.readLine()) != null) 
     { 
      String[] values = line.split(","); 
      for (int i = 0; i < line.lenght()/2; ++i) { 
       wordlist.add(new WordPair(values[i], values[i + 1)); 
      } 
     } 
    } catch (IOException ioe) 
    { 
     Logger.getLogger(Controller.class.getName()).log(Level.SEVERE, null, ioe); 
    } 

    return false; 
} 
+0

слова в файле не отделено ничем, когда они добавляются, так что нет пробелов между ними, так что я предполагаю, что это является причиной того, как они добавляются в текстовый файл. Был бы я прав в этом assupmtion? I TRIE ADING кнопка [0] и [1], но это дает мне ошибку: «массив требуется, но найти строку» –

+0

вы можете поделиться примером текстового файла – Mureinik

+0

лошади, hesthouse, husboat, BAD .? это то, на что похоже, когда в слот-файл добавлены 3 пары слов. –

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