java如何判断一个文件是不是存在乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何判断一个文件是不是存在乱码相关的知识,希望对你有一定的参考价值。

事先不知道该文件的编码

参考技术A 比如一些非法字符是乱码的话,那你就读全部文件,判断里面是否有些字符就好了吧追问

不太明白。。
判断是否有些字符?能不能详细说,举例子最好

追答

一些小方块之类的

追问

知道你的意思了。。不过这样不太可靠吧,比如:大多数乱码是英文问号,但是有可能文件本来就有问号的

追答

我只是思路一种思路呀,具体看你的

参考技术B 乱码是因为你用一种编码格式来查看另外一个编码格式的文件。
文件本身是没有问题。追问

我的文件是从网页上爬下来的,有可能爬下来的时候出现乱码。。所以想检查爬下来的文件

参考技术C 这是相对而言的,看你具体是用什么编码格式进行编码的追问

我的文件是从网页上爬下来的,有可能爬下来的时候出现乱码。。所以想检查爬下来的文件

追答

如果你大概知道文件里面的内容。你可以通过字符数组进行查找。 定义一个字符数组。 迭代字符数据。将字符数组在文件中匹配。如果匹配成功率超过了差不多50%,那么应该不存在乱码问题。否则肯定有乱码了。你可以先试试。 希望对我的答案满意。 若有疑问。晚上再解答。现在下班了。祝工作愉快!

追问

觉得你还是比较理解我的意思的,我还有一点迷惑。再次请教你了
你说的匹配在我这是不大行得通的,因为网页被爬下来的时候,只是某些特殊字符,像•
类似于这个符号的,在保存爬下来的网页的时候,这样的符号被保存为问号了,但数目也不是太多。其他汉字和常见标点正常
我想知道,保存之后的这个问号,是不是已经不能转化为•
也就是说,此时的问号已经只是一个问号,没办法检测他是否为乱码?

追答

这么久了 不晓得你的问题是否得到解决。
我们可以把思路逆转一下。既然不知道是神马编码的。我们可以判断文件中存在的“乱码”的个数。也就是你上面说的特殊字符。 用这些特殊字符进行一定数量的匹配。 如果出现的次数较多。应该可以得知该文件存在乱码。反之则不存在乱码。 这个结果可能不一定能解决问题。希望对你有所启示。祝工作愉快!

本回答被提问者采纳
参考技术D 明显是不能追问

能不能详细说下原因

追答

不能就是不能,你要怎么个详细法?你都不知道编码,你就算读出每个字符,就算他是乱码,你没有编码,你怎么判断?有编码就能判断。

追问

不好意思,请高手息怒,本人菜鸟一个。。
如果知道它的编码怎么做?

追答

编码是有一个范围的,你读入文件字符,一个个对比,如果字符的编码超过的你设定的编码范围,就是乱码。

追问

谢谢,受教了

java 如何判断文件路径是不是存在

是文件路径 不是文件

参考技术A exists
public boolean exists()测试此抽象路径名表示的文件或目录是否存在。

返回:
当且仅当此抽象路径名表示的文件或目录存在时,返回 true;否则返回 false

isFile
public boolean isFile()测试此抽象路径名表示的文件是否是一个标准文件。如果该文件不是一个目录,并且满足其他与系统有关的标准,那么该文件是标准 文件。由 Java 应用程序创建的所有非目录文件一定是标准文件。

返回:
当且仅当此抽象路径名表示的文件存在且 是一个标准文件时,返回 true;否则返回 false本回答被提问者采纳

以上是关于java如何判断一个文件是不是存在乱码的主要内容,如果未能解决你的问题,请参考以下文章

java如何实现从服务器下载已经生成好的excel文件

java 如何判断文件路径是不是存在

JAVA:判断一个文件是不是存在,如果不存在则创建它

在C#中如何判断一个文件是不是存在?请各位告知下,越详细越好。

如何用Java判断一个文件或目录是不是存在

用JAVA写出一个方法,给定一个路径,判断路径是不是是一个文件。