Самый эффективный способ проверить, пуст ли файл в Java в Windows

Я пытаюсь проверить, является ли файл журнала пустым (то есть без ошибок) или нет, в 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!");
25
задан GPX 25 August 2011 в 13:44
поделиться