我怎样才能确保人类可以读取文件.
我基本上想检查文件是a txt
,a yml
,a doc
,a json
文件等等.
问题是,在我想要执行此检查的情况下,文件扩展名具有误导性,并且我的意思是纯文本文件(应该是.txt)具有.d
以及其他各种的扩展名: - (
验证人类可以读取文件的最佳方法是什么?
到目前为止,我已尝试使用扩展程序,如下所示:
private boolean humansCanRead(String extention) {
switch (extention.toLowerCase()) {
case "txt":
case "doc":
case "json":
case "yml":
case "html":
case "htm":
case "java":
case "docx":
return true;
default:
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
但正如我所说,扩展不如预期.
编辑:澄清,我正在寻找一个平台独立的解决方案,而不使用外部库,并缩小我的意思"人类可读",我的意思是包含任何语言字符的纯文本文件,我也不介意如果文件中的文本有意义,如果它是编码的,我真的不在乎这一点.
感谢所有回复!:d
对于某些文件,检查可打印 ASCII 范围内的字节比例会有所帮助。如果超过 75% 的字节位于前几百字节内的该范围内,则它可能是“可读的”。
有些文件具有标头,例如 UTF 文件上的各种形式的 BoM、启动 MS doc 文件的 0xA5EC 或 .exe 开头的“MZ”签名,它会告诉您该文件是否可读。
许多现代文本文件都是 UTF 格式之一,通常可以通过读取文件的第一个块来识别,即使它们没有 BoM。
基本上,您将必须运行许多不同的文件类型才能查看是否获得匹配。将文件的第一个千字节加载到内存中并对其运行许多不同的检查。获得一些数据后,您可以命令检查以首先查找最常见的格式。
归档时间: |
|
查看次数: |
680 次 |
最近记录: |