`
assen
  • 浏览: 62212 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

对文件读入时进行特殊字符过滤,再读出来

    博客分类:
  • IO
阅读更多
/**
* 对文件读入时进行特殊字符过滤
* @param inFile  读入的文件
* @param outFile  输出的文件
* @author zhang
*/

public void FileFilter(String inFile, String outFile) {
    try {
                FileInputStream fis = new FileInputStream(inFile);
                FileOutputStream fos = new FileOutputStream(outFile);
                byte [] b = new byte [1024];
               int  i;

                try  {
                    while  ((i = fis.read(b)) != -1) {
                     String str = new String(b);
                     char [] ct = str.toCharArray();
                     StringBuffer stemp = new StringBuffer();
                     /**
                      * 使用正则表达式进行过滤,只允许英文字母、数字、汉字和 ,。, . ; ;这些符号
                     */

                     for (char  c : ct) {
                          String temp = String.valueOf(c);
                          String regex = "[a-zA-Z0-9\u4e00-\u9fa5 ,。, . ; ;]";
                          Pattern pattern = Pattern.compile(regex);
                          Matcher matcher = pattern.matcher(temp);
                         boolean bl = matcher.matches();
                          if (bl) {
                                  stemp.append(temp);
                          }
                      }
                      str = stemp.toString().trim();
                      fos.write(str.getBytes());         //把过滤后的文件给读出来
                      fos.flush();
                      }
               } catch (IOException e) {
                      e.printStackTrace();
               }
      } catch (FileNotFoundException e) {
              System.out.println("file not found");
              e.printStackTrace();
      }
}
1
0
分享到:
评论

相关推荐

    易语言逐行读入文本

    在易语言中,“逐行读入文本”是一个常见的操作,用于处理文本文件,特别是处理大量数据或者进行数据分析时非常有用。这个操作涉及到几个关键的函数和概念,接下来将详细介绍。 首先,`逐行读入文本` 是易语言中...

    BIOS和DOS中断大全

    对于需要对文件系统进行操作的应用程序来说,这些中断非常重要。 通过以上介绍可以看出,BIOS和DOS中断提供了丰富的功能集,使得程序员能够在较低级别上与硬件进行交互。掌握这些中断的功能及其使用方法,对于深入...

    从文本文件输入n个同学的姓名、性别、成绩,按成绩又高到底的顺序输出所有学生信息,分别求出男同学、女同学的平均成绩并输出

    5. 分组计算平均成绩:为了分别计算男生和女生的平均成绩,我们可以使用Python的`filter()`函数根据性别过滤学生列表,然后使用`sum()`函数求成绩总和,再除以性别组内学生数量得到平均值。 6. 输出结果:最后,...

    BIOS和DOS中断调用大全

    输入时,如果ZF=1表示无字符可读,否则AL寄存器将返回读入字符的ASCII码。 7. **09H - 显示字符串** - 用于输出存储在内存中的字符串,通过DS:DX寄存器对指向字符串的首地址,字符串以'$'结束。 8. **0AH - 键盘...

    bios dos中断大全

    10. INT 21H功能0CH:清空当前的标准输入缓冲区,再读入字符,可以被重定向。 入口参数:AH=0CH,AL=01H、06H、07H、08H或0AH 出口参数:若入口参数AL为0AH,则DS:DX=存放输入字符的起始地址,否则,出口参数AL...

    BIOS 和 DOS中断大全

    - **功能描述**:清空当前的标准输入缓冲区,再读入字符。 - **入口参数**: - AH = 0CH - AL = 01H、06H、07H、08H或0AH。 - **出口参数**: - 若入口参数AL为0AH,则DS:DX = 存放输入字符的起始地址,否则,...

    你必须知道的495个C语言问题

    2.12 怎样从/向数据文件读/写结构? 结构填充 2.13 为什么我的编译器在结构中留下了空洞?这导致空间浪费而且无法与外部数据文件进行“二进制”读写。能否关掉填充,或者控制结构域的对齐方式? 2.14 为什么...

    《你必须知道的495个C语言问题》

    2.12 怎样从/向数据文件读/写结构? 27 结构填充 27 2.13 为什么我的编译器在结构中留下了空洞?这导致空间浪费而且无法与外部数据文件进行“二进制”读写。能否关掉填充,或者控制结构域的对齐方式? 27  ...

    Oracle8i_9i数据库基础

    - **GET将命令文件读到缓冲区**:用于将外部文件的内容读入SQL*PLUS缓冲区。 - **SPOOL将信息记录到文件中**:用于将SQL*PLUS输出重定向到文件。 - **再运行当前缓冲区的命令**:用于重新执行当前缓冲区中的...

    php技术 解析外部邮件代码

    - 要处理EML文件,可以先将其内容读入字符串,然后模拟一个连接到内存中的"邮箱",再调用`imap_open`等函数。 6. **安全与优化**: - 在处理用户输入时,务必注意防止注入攻击。确保正确过滤和转义用户提供的邮件...

    数组的一些题目

    ### 数组的一些题目 #### 一、选择排序与插入排序 **知识点:** - **排序算法**:排序算法是...- 在主函数中,首先读入一行字符,利用`isLetter`函数过滤掉非字母数字字符,然后调用`testPalindrome`函数进行判断。

    编译原理练习题

    - **打印源程序**:边读入字符边打印,便于调试和检查。 **3. GETSYM的内部机制** GETSYM中定义了读字符过程`GETCH`,用于处理由一个或多个字符组成的单词。 #### 三、语法分析程序BLOCK的构建 **1. 功能介绍** ...

    易语言 茶凉专用模块

    参数 图标文件, 文本型, 可空, 图标文件的路径 可空:为空时用目标的第一个图标 .参数 运行方式, 整数型, 可空, 1,常规方式,3,最大化,7,最小化 .参数 备注, 文本型, 可空, 快方式的备注信息 .参数 快捷键, 文本型, ...

Global site tag (gtag.js) - Google Analytics