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();
}
}
分享到:
相关推荐
一个校验文件里是否含有非英文字符代码 自己写的代码
两个完全免费而且体积小巧的哈希值计算程序, 支持字符串和文件的哈希值计算, 可以计算的哈希值类型包括:MD5、SHA1、CRC32, 把你需要计算哈希值的文件拖放到程序窗口中即可。 大小: 45380 字节 MD5: 229B43E34BC5...
1、 编写一个计算机程序用来计算一个文件的16位效验和。最快速的方法是用一个32位的整数来存放这个和。记住要处理进位(例如,超过16位的那些位),把它们加到效验和中。 要求:1)以命令行形式运行:check_sum in...
这是一款在Windows下用来计算和校验字符串MD5值或者文件MD5值的工具,支持文件拖放功能。主要用途:验证下载后的文件是否与服务器上的文件一致。MD5的实际应用是对一段信息(字节串)产生fingerprint(指纹码),可以...
编写一个计算机程序用来计算一个文件的16位效验和。最快速的方法是用一个32位的整数来存放这个和。记住要处理进位(例如,超过16位的那些位),把它们加到效验和中。 要求:1)以命令行形式运行:check_sum infile ...
MD5Checksum是一款简单的小程序,允许用户使用它来校验指定文件的哈希值,通过检测对比文件MD5值来判断文件是否被修改。文件校验用于计算文件哈希值,校验文件的SHA1/256/384/512值,校验MD5值。将文件与人指定的MD5...
编写一个计算机程序用来计算一个文件的16位效验和。最快速的方法是用一个32位的整数来存放这个和。记住要处理进位(例如,超过16位的那些位),把它们加到效验和中。 要求:1)以命令行形式运行:check_sum infile ...
Windows中的通用应用程序的类名 使用API函数复制移动文件 使用API访问ListBox项 使用GetTempFileName创建一个唯一的临时文件 使用INI文件 ...运行一个程序或打开一个关联文件 返回UNC路径 通过CRC-32验证文件
计算这些校验和的算法称为网际校验和算法,简单来说就是:把被校验的数据16位进行累加,然后取反码,若数据字节长度为奇数,则数据尾部补一个字节的0以凑成偶数。 由于从输入文件读入的数据不能直接满足计算校验和的...
使用Java开发的桌面应用程序,可用于查看字符串和文件的校验码。支持MD5、SHA1和CRC32三种校验算法。
C编写,实现字符串摘要、文件摘要两个功能。 里面主要包含3个文件: Md5.cpp、Md5.h、Main.cpp。其中Md5.cpp是算法的代码,里的代码大多是从 rfc-1321 里copy过来的;Main.cpp是主程序。
运行于VC 环境的MD5校验和计算小程序,代码文件说明:Md5.cpp : 定义控制台应用程序的入口点,Md5.h:计算字符串的MD5值(若不指定长度则由函数计算)。使用方法,在DOS窗口中输入需要MD5的任意字符即可,程序立即算出...
支持在eDonkey和 eMule应用程序中使用的自定义哈希算法(基于MD4),支持 2 种计算模式:HASH/CHECKSUM和HMAC,支持 3 种输入数据格式:文件、文本字符串和 十六进制字符串,处理大文件(针对最大 15 GB 的文件进行了测试)...
有些软件通过改变文件的扩展名隐藏文件的真实类型。例如,有些游戏的音乐和动画其实是标准的MID和AVI文件...现在编写一个程序,使它从一个配置文件中获得字符串与文件类型的对应表,然后判断用户指定的文件的真实类型!
在apache的下载列表旁边,我们会发现有个md5的链接,点击打开之后,会出现如下字符串:cbad484f0b02f0daf775137aeeOf4e2e"apache tomcat-7.0.21zip。这是做什么用的呢? 这是一十六进制的编码字符串,又称“数字指纹”...
用labview写的,用于字符串ascii码异或和校验,文件中转有dll库 可以到http://www.ip33.com/bcc.html这个网址验证是否正确
修改读取文件路径即可使用 读取的字符为:Holle world. 字符转为16进制: ['48', '6f', '6c', '6c', '65', '20', '77', '6f', '72', '6c', '64', '2e'] 十六进制和为:0x26804 校验和为:0x6806
1、程序说明:用于字符串的CRC校验计算,根据规则,对数据进行处理,计算出CRC校验吗 2、语言:java jdk1.8.0_20 3、作者:lining 4、实现功能:对保存在TXT文件中的一组数据进行CRC16校验,输出校验码,并将校验码...
这是一款在Windows下用来计算和校验字符串CRC值或者文件CRC值的工具,支持CRC16、CRC32校验,支持文件拖放功能。主要用途:验证下载后的文件是否与服务器上的文件一致。CRC的全称是循环冗余校验,其特点是:检错能力...
为了计算效验和,发送计算机把每对字符当成16位整数处理并计算效验和。如果效验和大于16位,那么把进位一起加到最后的效验和中。