Java Mime Magic может быть полезным. Он будет анализировать MIME-типы из файлов и входных потоков. Однако я не могу поручиться за его функциональность.
Эта ссылка может предоставить дополнительную информацию. Он предоставляет несколько различных способов определения того, как делать то, что вы хотите (или, по крайней мере, что-то подобное).
Возможно, мне хотелось бы написать что-то конкретное для вашей проблемной области. например определение количества значений через строку, разделенных запятыми, и отклонение, если оно не находится в определенных пределах. Затем разделите запятые и проанализируйте каждую запись в соответствии с требованиями (например, являются ли они удваивающими / плавающими / действительными строками - и, если строки, то какая кодировка). Я думаю, что вам, возможно, придется сделать это в любом случае, учитывая, что кто-то может загрузить файл, который начинается как CSV, но поврежден на полпути.