import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class VerifyIsEnglishCode
{
private static final File FILE_PATH = new File("file");
private List<File> fileList;
private File logFile;
private StringBuffer errorMessage;
public VerifyIsEnglishCode()
{
fileList = Arrays.asList(FILE_PATH.listFiles());
errorMessage = new StringBuffer();
getFileList();
}
public void getFileList()
{
for (File file : fileList)
{
try
{
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
String fileLineContent = "";
int lineCount = 0;
while ((fileLineContent = bufferedReader.readLine()) != null)
{
lineCount++;
verifyMessage(file, fileLineContent, lineCount);
}
} catch (FileNotFoundException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
}
if (errorMessage.length() > 0)
{
try
{
writeErrorMessge();
} catch (IOException e)
{
e.printStackTrace();
}
} else
{
System.out.println("OK,没有发现非英文字符");
}
}
private void writeErrorMessge()
throws IOException
{
System.out.println(errorMessage.toString());
SimpleDateFormat bartDateFormat = new SimpleDateFormat("yyyy_dd_MM_HH_mm_ss");
logFile = new File("log/" + bartDateFormat.format(new Date()) + ".txt");
logFile.createNewFile();
FileWriter fileWriter = new FileWriter(logFile);
fileWriter.write(errorMessage.toString());
fileWriter.close();
}
private void verifyMessage(File file, String fileLineContent, int lineCount)
{
Pattern pattern = Pattern.compile("[^a-zA-Z0-9\\s=.,\\\"\\\\?!:~`@#$%^&*()_\\-+';<>/]");
Matcher matcher = pattern.matcher(fileLineContent);
if (matcher.find() && fileLineContent.trim().length() > 0)
{
errorMessage.append(file.getAbsolutePath()).append("\t")
.append(lineCount).append("\t\t")
.append(fileLineContent).append("\n");
}
}
public static void main(String[] args)
{
new VerifyIsEnglishCode();
}
}
分享到:
相关推荐
要编写代码来校验文件中是否含有非英文字符,我们可以利用编程语言中的字符串操作函数。例如,在Java中,我们可以读取文件内容,然后遍历每个字符,判断其Unicode值是否在英文字符的范围内。以下是一个简单的Java...
前者可能是一个汇编语言程序的源代码文件,汇编语言是一种低级编程语言,它直接对应于计算机的机器指令。在这里,开发者可能使用了汇编语言编写了密码校验的逻辑。1011.exe则是汇编语言程序编译后的可执行文件,可以...
Hex文件的内容通常是每两个字符代表一个字节,每个字节用十六进制表示。例如,“48 65 6C 6C 6F”代表字符串“Hello”。 2. **转换二进制**:读取到的十六进制字符串需要转换成对应的二进制形式。每个十六进制数字...
在提供的压缩包文件"**c32f3e5a0f274eec924de67a8ffb65a9**"中,可能包含了一个程序或脚本,用于执行这个异或校验和计算。这个文件名看似是一个十六进制哈希值,可能是该工具的散列标识,确保文件的完整性和未被篡改...
"asciifull.gif"可能是一个ASCII艺术图像或者包含ASCII字符的示例文件,与XOR校验和字符转换的主题相呼应。在计算机科学中,ASCII编码是一种广泛使用的字符编码标准,由7位二进制数字组成,可以表示128个不同的字符...
它能够将任意长度的信息映射为固定长度的输出,通常是一个128位的二进制数,以16进制表示为32个字符。MD5的主要应用是对数据的完整性进行验证,确保文件在传输或存储过程中没有被篡改。 在"vc实现MD5文件校验"这个...
尽管MD5曾广泛用于校验文件,但因其存在碰撞漏洞,即不同的文件可能产生相同的MD5值,所以现在已经不推荐用于安全敏感的应用场景。 SHA1则是一种更安全的哈希算法,它生成一个160位(20字节)的哈希值,表现为40个...
文件Hash值校验工具是一款轻量级的应用程序,专门用于验证文件的完整性和一致性。它在IT领域中扮演着至关重要的角色,特别是在下载、传输或存储文件时,确保文件未被篡改或损坏。这款工具的大小不超过30KB,体现了其...
根据给定文件的信息,我们可以详细地探讨如何使用Java编写一个程序来计算文件的16位校验和。这里的关键在于理解校验和的概念及其计算方法,并实现一个有效的算法来完成任务。 ### 一、校验和(Checksum)原理 ####...
两个完全免费而且体积小巧的哈希值计算程序, 支持字符串和文件的哈希值计算, 可以计算的哈希值类型包括:MD5、SHA1、CRC32, 把你需要计算哈希值的文件拖放到程序窗口中即可。 大小: 45380 字节 MD5: 229B43E34BC5...
这个函数会打开指定路径的文件,逐块读取内容并计算MD5值,最后返回一个32位的16进制字符串。如果在嵌入式环境中,可以将`QCryptographicHash`的相关功能用C语言的库(如OpenSSL)实现,实现方式类似,但需要管理...
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,可以生成一个128位(16字节)的数字指纹,通常表示为32个十六进制字符。在下载文件后,通过计算文件的MD5值并与原始文件的MD5值进行对比,可以确认...
在本场景中,"文件校验数据必备"可能是指一个专注于此领域的工具或者教程,特别是与FOXPRO编程语言相关的。 FOXPRO,全称Visual FoxPro,是Microsoft公司推出的一种关系型数据库管理系统(RDBMS),虽然现在已经被...
这段代码首先创建一个`TDCP_md5`对象,然后打开并读取指定文件,使用`Update`方法将文件内容传递给MD5计算,最后调用`Final`生成MD5值并将其转换为十六进制字符串。 在实际应用中,我们可能需要保存文件的MD5值以供...
4. **校验过程**:如果提供了一个已知的校验和,工具会比较计算出的哈希值与之,判断文件是否一致。 在`ReadMe.txt`中,可能会包含关于如何使用`CheckerFile`源码的说明,包括编译指令、如何运行程序、预期的输入和...
本压缩包文件“文件校验工具比较两个文件是否一致.rar”中包含了一个名为“文件校验工具.exe”的可执行程序,这可能是一个简单易用的文件校验应用。 文件校验通常涉及几种常见的校验算法,包括MD5(Message-Digest ...
UTF-8用1到4个字节表示一个字符,对于ASCII字符(如英文字符)仅需1个字节,而对于其他语言(如中文)则需要3或4个字节。这种编码方式具有良好的向后兼容性,因为其前128个编码与ASCII相同。 2. **Unicode(UCS-2/...
MD5Checksum是一款简单的小程序,允许用户使用它来校验指定文件的哈希值,通过检测对比文件MD5值来判断文件是否被修改。文件校验用于计算文件哈希值,校验文件的SHA1/256/384/512值,校验MD5值。将文件与人指定的MD5...