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

[size=small][color=green]/**
* 对文件读入时进行特殊字符过滤
* @param inFile 读入的文件
* @param outFile 输出的文件
* @author zhang
*/[/color]
[b][color=darkred]public void[/color] [/b]FileFilter(String inFile, String outFile) {
[color=darkred] [b] try[/b][/color] {
FileInputStream fis = [color=darkred] [b]new [/b][/color] FileInputStream(inFile);
FileOutputStream fos = [color=darkred] [b] new [/b][/color] FileOutputStream(outFile);
[color=darkred] [b]byte[/b][/color] [] b = [color=darkred] [b]new byte[/b][/color] [1024];
[color=darkred] [b] int[/b][/color] i;

[color=darkred] [b]try[/b][/color] {
[color=darkred] [b] while[/b][/color] ((i = fis.read(b)) != -1) {
String str = [color=darkred] [b]new [/b][/color] String(b);
[color=darkred] [b]char[/b][/color] [] ct = str.toCharArray();
StringBuffer stemp = new StringBuffer();
[color=green]/**
* 使用正则表达式进行过滤,只允许英文字母、数字、汉字和 ,。, . ; ;这些符号
*/[/color]
[color=darkred] [b]for (char[/b][/color] 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);
[color=darkred] [b] boolean [/b][/color] bl = matcher.matches();
[color=darkred] [b]if [/b][/color] (bl) {
stemp.append(temp);
}
}
str = stemp.toString().trim();
fos.write(str.getBytes()); [color=green]//把过滤后的文件给读出来[/color]
fos.flush();
}
} [color=darkred] [b]catch [/b][/color] (IOException e) {
e.printStackTrace();
}
}[color=darkred] [b] catch [/b][/color] (FileNotFoundException e) {
System.out.println("file not found");
e.printStackTrace();
}
}[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值