我写了以下方法,用于检查特定文件是否仅包含ASCII文本字符或除此之外还包含控制字符。您能否看一下这段代码,提出改进意见并指出疏漏?
逻辑如下:“如果文件的前500个字节包含5个或更多控制字符,则将其报告为二进制文件”。
谢谢。
逻辑如下:“如果文件的前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;
}