在Java中读取文本文件-为什么跳过行?

我是新来的,只是努力尝试读取文本文件.每行上都有一个单词和相应的数字代码.想法是将其读取并将代码和单词放在单独的变量中.我对这个领域了解不多,但是我一直在网上四处寻找,并提出了以下建议:

try{
    FileReader freader=new FileReader(f); 
    BufferedReader inFile=new BufferedReader(freader);
    while (inFile.readLine()!=null){
       String s=null;
       s=inFile.readLine();
       System.out.println(s);
               String[] tokens=s.split(" ");
       string=tokens[0];
       System.out.println(string);
       code=tokens[1];
       System.out.println(code);
       c.insert(string, code);
    }//end outer while
}//end try

问题是未读取文本文件的第一行.然后每次都跳过一行! (换言之,仅读取第1、3、5、7行等)

正如我上面所说,我是新手,而且我对在线上不同站点上看到的所有不同内容都不了解(例如为什么所有内容都被bufferedThis或bufferedThat或如何正确使用所有标记化器的内容).我在不同的时间尝试了几种不同的方法,最终得到了结果.

解决方法:

您的while循环吞噬了文件中的一半行.

while (inFile.readLine()!=null)

那会读一行,但不会将其分配给任何东西.在循环之前声明一个String,并以此方式读取每一行.

String line;
while ((line = inFile.readLine()) != null)

现在变量行将在循环内可用,因此您无需在循环中调用inFile.readLine().

上一篇:node 利用命令行交互生成相应模板


下一篇:Java使用分隔符读取大文本文件