文本文件和二进制文件判定

现在我有一个小说文件:完美世界.txt。它是文本文件,我把它后缀改了,变成:完美世界.avi。那么其实它还是一个文本文件,你照样可以用记事本打开它。
我个人认为可以这样判定一个文件是不是文本文件:”如果一个文件可以用文本编辑软件打开(如记事本、notepad++,vim等),并且总会有至少一个编码方式(编码方式如ascii、ansi、gbk2312、utf8)使它没有乱码,那么它就是文本文件“。
从上面的判定看,对于简单的java文件我们并不能确定它是文本文件还是二进制文件。例入,我有一个文件test。没错,它没有后缀,它里面的二进制内容是:‭01101000011001010110110001101100‬
可能有人说了,你都说了二进制内容是。。。。说明它就是二进制文件啊?此话错误,因为任何文件在计算机上都是以二进制存放的。所以任何计算机上的文件都可以以0101。。。。这两个数字表示出来。
而对于test的读取:
1.我直接用二进制读,它就是01101000011001010110110001101100‬,至于这个有什么用,我不知道,也许是一个暗号呢?谁知道呢?
2.我可以用记事本打开,发现它是一个单词 hello ,奥,原来这个文件存的是一个单词啊。
3.我觉得它是一个整数,我用计算器看看这个整数是多少,发现它是1751477356,这么大一个数。
所以我认为:一个文件肯定是二进制文件,至于它是不是文本文件,那要看作者在它里面存放了什么内容,如果放的是一个最影,那么肯定用记事本打开是乱码,当然它也不是文本文件,如果放的是一本小说,一封信。。。若用记事本打开,发现人是可读的,那么就是文本文件。
下面就截图看看test文件里到底放的什么:
文本文件和二进制文件判定_第1张图片
文本文件和二进制文件判定_第2张图片
文本文件和二进制文件判定_第3张图片
至于它到底是什么,看作者的意图了

你可能感兴趣的:(java)