全部,
我正在尝试识别带有 Mac 行尾的纯文本文件,并在 InputStream 中默默地将它们转换为 Windows 或 Linux 行尾(重要的部分是 LF 字符,真的)。具体来说,我正在使用几个 API,这些 API 采用 InputStreams 并且被硬锁定以寻找 \n 作为换行符。
有时,我会得到二进制文件。显然,不是文本的文件不应该进行这种替换,因为恰好对应于 \r 的值显然不能在不严重破坏事物的情况下默默地跟在 \n 后面。
如果类型是文本/纯文本,我正在尝试使用java.net.URLConnection.guessContentTypeFromStream
并且仅执行结束行转换。不幸的是,"text/plain"
它似乎不在它的返回值范围内。我得到的只是null
我的纯文本文件,假设所有无法识别的文件都可以修改可能是不安全的。
我可以使用什么更好的库(最好在公共 Maven 存储库和开源中)来执行此操作?或者,我怎样才能让 guessContentTypeFromStream 为我工作?我知道我在描述一个固有危险的应用程序,没有解决方案是完美的,但我是否应该将“null”视为可能是“text/plain”,我只需要自己编写更多代码来寻找证据证明它是不是吗?