`

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

阅读更多
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文件解析,校验码校验

    Hex文件的内容通常是每两个字符代表一个字节,每个字节用十六进制表示。例如,“48 65 6C 6C 6F”代表字符串“Hello”。 2. **转换二进制**:读取到的十六进制字符串需要转换成对应的二进制形式。每个十六进制数字...

    十六进制字符串按位异或校验和和校验工具

    在提供的压缩包文件"**c32f3e5a0f274eec924de67a8ffb65a9**"中,可能包含了一个程序或脚本,用于执行这个异或校验和计算。这个文件名看似是一个十六进制哈希值,可能是该工具的散列标识,确保文件的完整性和未被篡改...

    xor校验和字符转换工具集

    "asciifull.gif"可能是一个ASCII艺术图像或者包含ASCII字符的示例文件,与XOR校验和字符转换的主题相呼应。在计算机科学中,ASCII编码是一种广泛使用的字符编码标准,由7位二进制数字组成,可以表示128个不同的字符...

    vc实现MD5文件校验

    它能够将任意长度的信息映射为固定长度的输出,通常是一个128位的二进制数,以16进制表示为32个字符。MD5的主要应用是对数据的完整性进行验证,确保文件在传输或存储过程中没有被篡改。 在"vc实现MD5文件校验"这个...

    ISO文件校验工具

    尽管MD5曾广泛用于校验文件,但因其存在碰撞漏洞,即不同的文件可能产生相同的MD5值,所以现在已经不推荐用于安全敏感的应用场景。 SHA1则是一种更安全的哈希算法,它生成一个160位(20字节)的哈希值,表现为40个...

    文件Hash值校验工具

    文件Hash值校验工具是一款轻量级的应用程序,专门用于验证文件的完整性和一致性。它在IT领域中扮演着至关重要的角色,特别是在下载、传输或存储文件时,确保文件未被篡改或损坏。这款工具的大小不超过30KB,体现了其...

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

    根据给定文件的信息,我们可以详细地探讨如何使用Java编写一个程序来计算文件的16位校验和。这里的关键在于理解校验和的概念及其计算方法,并实现一个有效的算法来完成任务。 ### 一、校验和(Checksum)原理 ####...

    文件校验工具(哈希值计算程序)

    两个完全免费而且体积小巧的哈希值计算程序, 支持字符串和文件的哈希值计算, 可以计算的哈希值类型包括:MD5、SHA1、CRC32, 把你需要计算哈希值的文件拖放到程序窗口中即可。 大小: 45380 字节 MD5: 229B43E34BC5...

    QT中使用的文件MD5校验类

    这个函数会打开指定路径的文件,逐块读取内容并计算MD5值,最后返回一个32位的16进制字符串。如果在嵌入式环境中,可以将`QCryptographicHash`的相关功能用C语言的库(如OpenSSL)实现,实现方式类似,但需要管理...

    好压的三个小工具(MD5校验,文件批量改名,批量字符替换)

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,可以生成一个128位(16字节)的数字指纹,通常表示为32个十六进制字符。在下载文件后,通过计算文件的MD5值并与原始文件的MD5值进行对比,可以确认...

    文件校验数据必备

    在本场景中,"文件校验数据必备"可能是指一个专注于此领域的工具或者教程,特别是与FOXPRO编程语言相关的。 FOXPRO,全称Visual FoxPro,是Microsoft公司推出的一种关系型数据库管理系统(RDBMS),虽然现在已经被...

    文件Md5校验

    这段代码首先创建一个`TDCP_md5`对象,然后打开并读取指定文件,使用`Update`方法将文件内容传递给MD5计算,最后调用`Final`生成MD5值并将其转换为十六进制字符串。 在实际应用中,我们可能需要保存文件的MD5值以供...

    文件校验工具

    4. **校验过程**:如果提供了一个已知的校验和,工具会比较计算出的哈希值与之,判断文件是否一致。 在`ReadMe.txt`中,可能会包含关于如何使用`CheckerFile`源码的说明,包括编译指令、如何运行程序、预期的输入和...

    文件校验工具比较两个文件是否一致.rar

    本压缩包文件“文件校验工具比较两个文件是否一致.rar”中包含了一个名为“文件校验工具.exe”的可执行程序,这可能是一个简单易用的文件校验应用。 文件校验通常涉及几种常见的校验算法,包括MD5(Message-Digest ...

    字符工具V1.6.zip UTF8 unicode GBK字符格式互相转换 空格剔除 换行剔除 和校验 异或校验

    UTF-8用1到4个字节表示一个字符,对于ASCII字符(如英文字符)仅需1个字节,而对于其他语言(如中文)则需要3或4个字节。这种编码方式具有良好的向后兼容性,因为其前128个编码与ASCII相同。 2. **Unicode(UCS-2/...

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

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

Global site tag (gtag.js) - Google Analytics