Java:查找文件的最后一行是否为空
我有一个关于学校作业的问题,我需要用Java来完成。我需要从文件加载数据并检查这些文件中的错误。
我读取带有的文件,该文件在文件bufferedReader
末尾之前都可以正常运行:如果该行为空,它将忽略最后一行。
我知道如何检查空行,但是使用的readLine()
功能,最后一行根本不会给出任何结果bufferedReader
。
重要的是,我知道最后一行是否必须为空。如果空行不存在,则应该给出错误。
长话短说,我需要一种方法来说明以下情况(CRLF
行尾在哪里)之间的区别:
line x CRLFline y CRLF
line x CRLFline 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