Я пытаюсь проверить, является ли файл журнала пустым (то есть без ошибок) или нет, в Java, в Windows.До сих пор я пытался использовать 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 КБ!
Метод 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!");