Java:查找文件的最后一行是否为空

我有一个关于学校作业的问题,我需要用Java来完成。我需要从文件加载数据并检查这些文件中的错误。

我读取带有的文件,该文件在文件bufferedReader末尾之前都可以正常运行:如果该行为空,它将忽略最后一行。

我知道如何检查空行,但是使用的readLine()功能,最后一行根本不会给出任何结果bufferedReader

重要的是,我知道最后一行是否必须为空。如果空行不存在,则应该给出错误。

长话短说,我需要一种方法来说明以下情况(CRLF行尾在哪里)之间的区别:

line x CRLF

line y CRLF

line x CRLF

line y

这两种情况都将readline()在y行之后返回null 。

我正在计算文件的行数,因此,如果我有一个行计数器(注意:该计数器也必须计算该空行,所以我发现的所有行都没有对它们进行计数)

文件中也始终包含空行,如果这对我需要的代码有什么不同(这些行将被正确检测,因为它们应该EOF不在这些行上)

请注意,该程序可以使用最后一行,也可以不使用最后一行,这纯粹是因为赋值告诉我如果不存在该错误,则会给出错误。

回答:

如果要确定最后一行是否具有CRLF,则可以从末尾读取。

public static boolean lastLineisCRLF(String filename) {

RandomAccessFile raf = null;

try {

raf = new RandomAccessFile(filename, "r");

long pos = raf.length() - 2;

if (pos < 0) return false; // too short

raf.seek(pos);

return raf.read() == '\r' && raf.read() == '\n';

} catch (IOException e) {

return false;

} finally {

if (raf != null) try {

raf.close();

} catch (IOException ignored) {

}

}

}

以上是 Java:查找文件的最后一行是否为空 的全部内容, 来源链接: utcz.com/qa/407752.html

回到顶部