我正在尝试在Windows上的Java中检查日志文件是否为空(表示没有错误)。到目前为止,我已经尝试使用2种方法。
方法1(失败)
FileInputStream fis = new FileInputStream(new File(sLogFilename));
int iByteCount = fis.read();
if (iByteCount == -1)
System.out.println("NO ERRORS!");
else
System.out.println("SOME ERRORS!");
方法2(失败)
File logFile = new File(sLogFilename);
if(logFile.length() == 0)
System.out.println("NO ERRORS!");
else
System.out.println("SOME ERRORS!");
现在,这两种方法都会在日志文件为空(没有内容)但文件大小不为零(2字节)时失败。
检查文件是否为空的最有效 , 最准确的方法是什么?我要求提高效率,因为我必须循环检查数千次文件大小。
注意: 文件大小只会在几到10 KB左右徘徊!
方法3(失败)
遵循@ Cygnusx1的建议,我也尝试使用FileReader过,但没有成功。如果有人感兴趣,这是代码段。
Reader reader = new FileReader(sLogFilename);
int readSize = reader.read();
if (readSize == -1)
System.out.println("NO ERRORS!");
else
System.out.println("SOME ERRORS!");