`

一个校验文件里面是否只有英文字符的程序

阅读更多
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...

    用java 编写的 ,编写一个计算机程序用来计算一个文件的16位效验和。最快速的方法是用一个32位的整数来存放这个和。

    1、 编写一个计算机程序用来计算一个文件的16位效验和。最快速的方法是用一个32位的整数来存放这个和。记住要处理进位(例如,超过16位的那些位),把它们加到效验和中。 要求:1)以命令行形式运行:check_sum in...

    文件MD5校验工具

    这是一款在Windows下用来计算和校验字符串MD5值或者文件MD5值的工具,支持文件拖放功能。主要用途:验证下载后的文件是否与服务器上的文件一致。MD5的实际应用是对一段信息(字节串)产生fingerprint(指纹码),可以...

    16位效验和实验程序cpp

    编写一个计算机程序用来计算一个文件的16位效验和。最快速的方法是用一个32位的整数来存放这个和。记住要处理进位(例如,超过16位的那些位),把它们加到效验和中。 要求:1)以命令行形式运行:check_sum infile ...

    MD5Checksum文件校验工具3.6中文版.rar

    MD5Checksum是一款简单的小程序,允许用户使用它来校验指定文件的哈希值,通过检测对比文件MD5值来判断文件是否被修改。文件校验用于计算文件哈希值,校验文件的SHA1/256/384/512值,校验MD5值。将文件与人指定的MD5...

    计算校验和

    编写一个计算机程序用来计算一个文件的16位效验和。最快速的方法是用一个32位的整数来存放这个和。记住要处理进位(例如,超过16位的那些位),把它们加到效验和中。 要求:1)以命令行形式运行:check_sum infile ...

    Delphi开发技巧之-文件操作

    Windows中的通用应用程序的类名 使用API函数复制移动文件 使用API访问ListBox项 使用GetTempFileName创建一个唯一的临时文件 使用INI文件 ...运行一个程序或打开一个关联文件 返回UNC路径 通过CRC-32验证文件

    网际校验和算法VC源码

    计算这些校验和的算法称为网际校验和算法,简单来说就是:把被校验的数据16位进行累加,然后取反码,若数据字节长度为奇数,则数据尾部补一个字节的0以凑成偶数。 由于从输入文件读入的数据不能直接满足计算校验和的...

    基于Java开发的校验码工具.zip

    使用Java开发的桌面应用程序,可用于查看字符串和文件的校验码。支持MD5、SHA1和CRC32三种校验算法。

    MD5校验和计算小程序(C) v1.0

    C编写,实现字符串摘要、文件摘要两个功能。 里面主要包含3个文件: Md5.cpp、Md5.h、Main.cpp。其中Md5.cpp是算法的代码,里的代码大多是从 rfc-1321 里copy过来的;Main.cpp是主程序。

    VC MD5校验和计算源码程序.rar

    运行于VC 环境的MD5校验和计算小程序,代码文件说明:Md5.cpp : 定义控制台应用程序的入口点,Md5.h:计算字符串的MD5值(若不指定长度则由函数计算)。使用方法,在DOS窗口中输入需要MD5的任意字符即可,程序立即算出...

    一种快速且易于使用的计算器,可以计算文件以及文本和十六进制字符串的消息摘要、校验和和 HMAC

    支持在eDonkey和 eMule应用程序中使用的自定义哈希算法(基于MD4),支持 2 种计算模式:HASH/CHECKSUM和HMAC,支持 3 种输入数据格式:文件、文本字符串和 十六进制字符串,处理大文件(针对最大 15 GB 的文件进行了测试)...

    判断文件的真实类型

    有些软件通过改变文件的扩展名隐藏文件的真实类型。例如,有些游戏的音乐和动画其实是标准的MID和AVI文件...现在编写一个程序,使它从一个配置文件中获得字符串与文件类型的对应表,然后判断用户指定的文件的真实类型!

    java完整性校验解决方案

    在apache的下载列表旁边,我们会发现有个md5的链接,点击打开之后,会出现如下字符串:cbad484f0b02f0daf775137aeeOf4e2e"apache tomcat-7.0.21zip。这是做什么用的呢? 这是一十六进制的编码字符串,又称“数字指纹”...

    labview异或和校验算法

    用labview写的,用于字符串ascii码异或和校验,文件中转有dll库 可以到http://www.ip33.com/bcc.html这个网址验证是否正确

    【Python】计算一个文件的16位效验和

    修改读取文件路径即可使用 读取的字符为:Holle world. 字符转为16进制: ['48', '6f', '6c', '6c', '65', '20', '77', '6f', '72', '6c', '64', '2e'] 十六进制和为:0x26804 校验和为:0x6806

    java实现CRC16校验源码和源码说明文件,具备人机交互界面

    1、程序说明:用于字符串的CRC校验计算,根据规则,对数据进行处理,计算出CRC校验吗 2、语言:java jdk1.8.0_20 3、作者:lining 4、实现功能:对保存在TXT文件中的一组数据进行CRC16校验,输出校验码,并将校验码...

    crc校验工具

    这是一款在Windows下用来计算和校验字符串CRC值或者文件CRC值的工具,支持CRC16、CRC32校验,支持文件拖放功能。主要用途:验证下载后的文件是否与服务器上的文件一致。CRC的全称是循环冗余校验,其特点是:检错能力...

    c++计算一个文件的16位效验和

    为了计算效验和,发送计算机把每对字符当成16位整数处理并计算效验和。如果效验和大于16位,那么把进位一起加到最后的效验和中。

Global site tag (gtag.js) - Google Analytics