【问题标题】:Java reading from file problemJava从文件读取问题
【发布时间】:2011-02-26 20:03:01
【问题描述】:

我有一个文件,我们称之为 text.txt。它包含几行文本。我正在尝试用我的代码读入它,以便我可以使用我的代码对其进行编辑,不幸的是,每当我尝试阅读它时,它只会返回 null,并且根本不加载代码。没有错误信息或任何东西。

一个例子是一个包含以下内容的文件:

a
b
c
d
e
f

加载时会加载以下内容:

a
b
c
d
null

这对我来说毫无意义,因为如果它正在进入 while 循环,它不应该退出!谁能帮帮我?

try
{
     File theFile = new File(docName);

     if (theFile.exists() && theFile.canRead())
     {  
        BufferedReader docFile;
        docFile = new BufferedReader(
              new FileReader(f));

        String aLine = docFile.readLine();

        while (aLine != null)
        {  
           aLine = docFile.readLine();
           doc.add( aLine );
        }

        docFile.close();
     }

【问题讨论】:

    标签: java file bufferedreader


    【解决方案1】:

    请注意,您正在阅读第一行

    String aLine = docFile.readLine();
    

    然后你放弃这一行

    aLine = docFile.readLine();
    

    在循环内部。

    【讨论】:

    • 更不用说他在 doc before 中添加了 aLine 来检查它是否为空。
    【解决方案2】:

    在阅读下一行之前添加一行。如果您从逻辑上考虑,应该是有道理的,如果没有,请询​​问。

    【讨论】:

      【解决方案3】:

      在while循环中,如果你翻转两个语句,那么它将添加你知道不为空的行,然后检查下一行。你现在的方式是,循环检查行,然后前进一行并将新行添加到 doc,因此它可以为 null,然后在添加 null 后退出。

      【讨论】:

        【解决方案4】:
        while ( (aLine = docFile.readLine())!= null)
        {  
             doc.add( aLine );
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-07-14
          • 1970-01-01
          • 2015-05-14
          • 1970-01-01
          • 1970-01-01
          • 2017-03-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多