如何打印程序前面输入的文本文件的行

时间:2018-12-15 10:32:48

标签: java text-files inputstream filereader fileoutputstream

我有一个作业要创建一个程序,该程序允许用户输入5个字符串,将它们保存到文本文件中,然后输出文本文件的行,但是输入字符串后,程序仅打印“ null”。

import java.io.*;
import java.util.*;

public class WriteLines
{
  public static void main(String[] args) throws IOException
  {
    String k;
    String fileName = "Input.txt";
    String aLine;

    Scanner sc = new Scanner(System.in);
    FileWriter fw = new FileWriter("Input.txt");
    BufferedWriter bw = new BufferedWriter(fw);
    PrintWriter pw = new PrintWriter(bw);

    for(int i=0; i<5;i++)
    {
        System.out.println("Enter a String of text: ");
        k=sc.nextLine();
        pw.println(k);
    }
    pw.close();

    FileReader fr = new FileReader(fileName);
    BufferedReader bl = new BufferedReader(fr);

    while((aLine = bl.readLine()) !=null);
    {
        System.out.println(aLine);
    }

    bl.close();
  }
}

1 个答案:

答案 0 :(得分:2)

看看您的while循环,最后您会看到;,其含义如下:

while ((aLine = bl.readLine()) != null) {
    ;
}
{
    System.out.println(aLine);
}

循环运行到aLine == null,因此循环结束后打印aLine会打印null。删除此;字符将使您的代码正常工作。