我编写了以下方法来查看特定文件是否仅包含ASCII文本字符或控制字符除此之外.你能看一下这段代码,建议改进并指出疏忽吗?
逻辑如下:“如果文件的前500个字节包含5个或更多控制字符 – 将其报告为二进制文件”
谢谢.
public boolean isAsciiText(String fileName) throws IOException {
InputStream in = new FileInputStream(fileName);
byte[] bytes = new byte[500];
in.read(bytes, 0, bytes.length);
int x = 0;
short bin = 0;
for (byte thisByte : bytes) {
char it = (char) thisByte;
if (!Character.isWhitespace(it) && Character.isISOControl(it)) {
bin++;
}
if (bin >= 5) {
return false;
}
x++;
}
in.close();
return true;
}