All
Я пытаюсь идентифицировать простые текстовые файлы с окончаниями строк Mac и внутри InputStream беззвучно преобразовывать их в окончания строк Windows или Linux (действительно важная часть - это символ LF). В частности, я работаю с несколькими API, которые принимают InputStreams и не могут найти \ n как символы новой строки.
Иногда я получаю двоичные файлы. Очевидно, что файл, который не является текстовым, не должен выполнять эту замену, потому что значение, которое, как оказалось, соответствует \ r, очевидно, не может молча сопровождаться \ n без искажения вещей.
Я пытаюсь использовать java.net.URLConnection.guessContentTypeFromStream
и выполняю только преобразования конечной строки, если тип является text / plain. К сожалению, "text/plain"
, похоже, не в гамме возвращаемых значений; все, что я получаю, это null
для моих текстовых файлов, и, возможно, небезопасно предполагать, что все неопознаваемые файлы могут быть изменены.
Какую лучшую библиотеку (желательно в общедоступном репозитории Maven и с открытым исходным кодом) я могу использовать для этого? В качестве альтернативы, как я могу сделать угадайку ContentTypeFromStream работать для меня? Я знаю, что описываю опасное по своей природе приложение, и ни одно решение не может быть идеальным, но я должен просто считать «ноль» вероятным «текстом / простым текстом», и мне просто нужно самому написать больше кода, чтобы найти доказательства того, что это не так. «т