java - 在 java 中读取文本文件——为什么会跳行?

标签 java file text token readline

我是新来的,正在努力尝试读取文本文件。每行都有一个单词和一个相应的数字代码。这个想法是阅读它并将代码和单词放在单独的变量中。我对这方面了解不多,但我一直在网上四处寻找并得出以下结论:

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,或者如何正确使用所有的 tokenizer 东西) .我在不同的时间尝试了一些不同的东西,最后得到了这个。

最佳答案

您的 while 循环吞没了文件中的一半行。

while (inFile.readLine()!=null)

读取一行,但不将其分配给任何内容。在循环之前声明一个 String 并以这种方式读取每一行。

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

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

关于java - 在 java 中读取文本文件——为什么会跳行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12886638/

相关文章:

java - 为什么泛型父类(super class)型的 Java 类型推断会在这里中断?

java - 用于在 HTML5 中绘制图形(不是图表,而是 DAG)的 JSF

java - Sqlite:在 Intellij 中执行 Spatialite 函数

c++ - 无法使用 QStandardPaths 打开文件

text - 如何使用批处理脚本将一个文本文件的内容附加到另一个文本文件?

java - 如何更改 ListView 项的文本颜色?

java - lcdui 与 lwuit 命令区别

Python不会写入文件

C:如何从文件中读取一个jpg并保存?

text - 具有 TF-IDF 权重的余弦相似度的系统阈值