Я пытаюсь проверить, пустой ли файл журнала (что означает отсутствие ошибок) или нет, в 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!");