输入流读取器会跳过某些文本

时间:2011-10-01 23:29:45

标签: java io

大家好,所以这是我所拥有的代码的一部分

public ItemList() throws Exception {
    //itemList = new List<Item>() ;
    List<Item> itemList = new ArrayList<Item>() ;

    URL itemPhrases = new URL("http://dl.dropbox.com/u/18678304/2011/BSc2/phrases.txt");     // Initilize URL
    BufferedReader in = new BufferedReader(new InputStreamReader(
            itemPhrases.openStream())); // opens Stream from html

    while ((inputLine = in.readLine()) != null) {
        inputLine = in.readLine();
        System.out.println(inputLine);
        Item x = new Item(inputLine);
        itemList.add(x);
    } // validates and reads in list of phrases
    for(Item item: itemList){ 
        System.out.println(item.getItem());
    }

    in.close();// ends input stream
}

我的问题是我正在尝试从URL http://dl.dropbox.com/u/18678304/2011/BSc2/phrases.txt中读取一个短语列表,但是当它打印出我收集的内容时,它只是打印出来:

aaa

bbb

ddd

我尝试过研究这个库并使用调试器,但都没有帮助。

2 个答案:

答案 0 :(得分:4)

您连续两次致电in.readLine()。删除第二个电话。

答案 1 :(得分:4)

你应该从while循环中删除inputLine = in.readLine();,它再次调用readLine()函数,从而跳过每一行。

你的循环应如下所示:

while ((inputLine = in.readLine()) != null) {
        //this line must not be here inputLine = in.readLine();
        System.out.println(inputLine);
        Item x = new Item(inputLine);
        itemList.add(x);
    }