Java,FileReader()似乎只是在阅读文本文档的第一行?

时间:2017-04-14 18:08:44

标签: java bufferedreader filereader

我还在学习中,如果我误解了,请纠正我,但FileReader对象不应该返回文本文件的全部内容吗?

我在这里有一段代码,我只是简单地尝试获取一个简短的.txt文件的内容,并使用system.out.println()打印它

public class Main {

  public static void main(String[] args) throws FileNotFoundException, IOException {

    File testDoc = new File("C:\\Users\\Te\\Documents\\TestDocument.txt");
    BufferedReader reader = new BufferedReader(new FileReader(testDoc));
    Scanner in = new Scanner(new FileReader(testDoc));


    try {
      System.out.println(reader.readLine());
    } finally {
      reader.close();
    }
  }
}

.txt文件只包含3行,格式如下:

some text here, more text and stuff
new estonian lessons
word = new word

但是程序只打印文件中的第一行。

some text here, more text and stuff

造成这种情况的原因是什么?如何更正?

我已经尝试阅读文档,以及搜索Stackoverflow,但我还没有找到解决此问题的方法。

4 个答案:

答案 0 :(得分:2)

BufferedReader的(看hereforeach ($useres1 as $rows) { echo "<tr><td>" . $rows['fname'] . "</td><td>" . $rows['fprice'] . "</td> <td><a href='pledit.php?id=" . $rows['food_id'] . "'>Επεξεργασία</a></td></tr>"; } echo "</tbody>" . "</table>" . "</div>"; 从文件中读取一行,因此您需要编写一个循环,如下所示:

readLine()

此外,您的代码中不需要String line = ""; while((line =reader.readLine()) != null) { System.out.println(line); } 个对象(如果您使用Scanner),所以它将如下所示:

BufferedReader

答案 1 :(得分:1)

您可以使用实际实例化但不用于将FileReader实例链接起来的扫描程序。
它可以允许具有Scanner类的灵活api hasNextLine() 1}}和nextLine()方法。

Scanner in = new Scanner(new FileReader(testDoc));


public static void main(String[] args) throws FileNotFoundException, IOException {

    File testDoc = new File("C:\\TestDocument.txt");
    Scanner in = new Scanner(new FileReader(testDoc));

    try {
        while (in.hasNextLine()) {
            String currentLine = in.nextLine();
            System.out.println(currentLine);
        }
    } finally {
        in.close();
    }
}

答案 2 :(得分:0)

方法git diff 'master' 'testlocalBranch' 只返回一行。所以你必须迭代所有行:

readLine()

答案 3 :(得分:0)

两种方法。见下文。

 File testDoc = new File("C:\\Users\\Te\\Documents\\TestDocument.txt");
    BufferedReader reader = new BufferedReader(new FileReader(testDoc));
    Scanner in = new Scanner(new FileReader(testDoc));
    try {

      //Using Scanner Object
      while(in.hasNextLine()){
          System.out.println(in.nextLine());
      }

    //Using BufferReader Object
      String line=reader.readLine();
      while(line!=null){
          System.out.println(line);
          line=reader.readLine();
      }

    } finally {
      reader.close();
    }