Вы бы сделали import com.starbase.util.FileUtils;
или import static com.starbase.util.FileUtils.*
. Иерархия просто показывает, что класс FileUtils
расширяется Object
(как и все классы).
Вам также необходим файл / API .jar для доступа к этому классу.
РЕДАКТИРОВАТЬ : Добавлена возможная автономная реализация:
Если вы хотите реализовать это самостоятельно (я заметил ваш собственный «банальный» ответ), вы можете сделать что-то вроде этого:
public static boolean isBinary(String fileName) throws IOException {
return isBinary(new File(fileName));
}
public static boolean isBinary(File file) throws IOException {
InputStream is = new FileInputStream(file);
try {
byte[] buf = new byte[4096];
int bytesRead;
while ((bytesRead = is.read(buf)) >= 0)
{
for (int i = 0; i < bytesRead; i++) {
if (buf[i] == (byte) 0)
return true;
}
}
return false;
} finally {
is.close();
}
}
Обратите внимание, я не проверял это.
Я должен добавить, что это тривиальная реализация. Существует много видов текстовых файлов, которые можно считать двоичными. Если вы позволите тексту быть Unicode и / или UTF-8 (или другой текстовой кодировкой), то это быстро становится очень трудным. Затем вам нужно разработать некоторые виды эвристики, чтобы различать типы файлов, и это не будет на 100% точным. Итак, это действительно зависит от того, что вы пытаетесь сделать с этим.