我怎样才能确保人类可以读取文件.
我基本上想检查文件是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
今天我遇到了一个混淆的类(在jar中很多混淆的类),我不知道如何进行这种混淆.
一个例子:
protected void a(ChannelHandlerContext ?, ByteBuf ?, ByteBuf ?)
throws Exception
{
int ? = ?.readableBytes();
if (? < this.c)
{
?.b(0);
?.writeBytes(?);
}
else
{
byte[] ? = new byte[?];
?.readBytes(?);
?.b(?.length);
this.b.setInput(?, 0, ?);
this.b.finish();
while (!this.b.finished())
{
int ? = this.b.deflate(this.a);
?.writeBytes(this.a, 0, ?);
}
this.b.reset();
}
}
}
Run Code Online (Sandbox Code Playgroud)
如上所示,所有参数变量都是雪人.怎么能撤消?它首先是如何完成的; JVM如何能够"处理"这些并执行代码而没有任何问题?
为了澄清,我不会使用此代码,它仅用于教育目的.我正在学校学习计算机科学课程,因为我们正在学习Java并讨论诸如解压缩之类的限制.我有兴趣了解更多,所以我决定研究更大的项目,特别是服务器.这段代码从Minecraft(一款游戏)的Spigot服务器中取出,这是一款应该是开源的Minecraft Bukkit服务器的分支.
我的文件看起来像这样:
{
"parent" : {
"properties" : {
"id": {
"type" : "keyword"
}
"name" : {
"type" : "keyword"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
和子文件:
{
"child": {
"_parent": {
"type": "parent"
},
"_routing": {
"required": true
},
"properties": {
"child_id": {
"type" : "keyword"
},
"child_name" : {
"type" : "keyword"
},
"child_time": {
"type": "date"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何按子项的子名称和最新的子时间对父文档进行排序?