今天在一个讨论群中有人问了一个问题,要去掉文件中的汉字等特殊字符,只保留数字,写了个小程序实现这个功能
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
/**
* 读取一个txt文件,去掉其中的汉字,剩下每个数字串存储成一行,存到新文件中
* @author huangqun
*/
public class KeepNumber {
public static void main(String[] args) {
String regExp = "[^0-9]*";//正则表达式 非数字
List<String> cacheList = new ArrayList<String>(); //缓存list 用于存放处理后的字符串 每行是一个字符串放到list中
try {
//1.读取文件
String readStr = null;
File file = new File("E:/1.txt");//要处理的文件路径 FIXME
InputStream is = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
while(null != (readStr = br.readLine())) {
if("".equals(readStr.trim())) continue;
readStr = readStr.replaceAll(regExp, "");//替换操作
cacheList.add(readStr);
}
br.close();isr.close();is.close();
//2.把cacheList写到新文件中
String outPath = file.getAbsolutePath();
/**
* 组装新生成的备份文件路径
*/
outPath = outPath.substring(0, outPath.indexOf(".")) + "bak." + outPath.substring(outPath.indexOf(".")+1, outPath.length());
File outFile = new File(outPath);
if (!outFile.exists()) {
outFile.createNewFile();
}
OutputStream os = new FileOutputStream(outFile);
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
for (String str : cacheList) {
System.out.print(str + "\r\n");
bw.write(str + "\r\n");
}
bw.flush();osw.close();os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
该Java非法字符过滤器的主要功能是对输入字符串中的非法字符进行识别和替换。设计者通过预定义一组非法字符(或字符序列),并将其存储在一个`HashMap`中,其中键为非法字符,值为用于替换的替代字符串。这使得过滤...
在Java编程语言中,对字符串中的字符进行a到z排序是一项常见的操作,特别是在处理文本数据或需要对字母顺序排列的场景。本知识点将详细讲解如何实现这个功能。 首先,我们需要理解字符串在Java中的本质。在Java中,...
首先,让我们了解一下Java过滤器的基础知识。在Java Servlet规范中,Filter接口定义了过滤器的行为。一个过滤器可以通过实现`doFilter()`方法来拦截请求和响应,并对其进行处理。通过在web.xml配置文件中定义过滤器...
Java过滤器就是为了解决这些问题,确保数据在处理过程中保持正确的编码格式。 在Java中,字符乱码通常是由于字符编码不一致导致的。例如,一个以UTF-8编码的文件被误认为是GBK编码来读取,就会出现乱码现象。为了...
在Java Web开发中,Servlet、拦截器(Interceptor)和过滤器(Filter)是三个非常重要的概念,它们在处理HTTP请求和响应时起到了关键作用。理解并熟练运用这三者能够帮助开发者实现更高效、更安全的Web应用。 首先...
在Java开发中,实现敏感词过滤功能是一项常见的需求,特别是在社交媒体、论坛或评论系统中,以防止用户发布不当或违规内容。本项目的核心是通过Java编程实现敏感词的检测和替换,确保信息的安全和合规性。 `...
在Java编程中,构建和显示树形结构是一种常见的任务,特别是在数据表示、文件系统操作或者组织复杂的对象层次结构时。本篇文章将详细讲解如何在Java中根据过滤条件来实现这一功能,同时也会提及所需的jar包。 首先...
在Java编程中,UTF-8编码是一个非常常见且广泛使用的字符编码格式,它能支持全球大部分语言的字符表示。然而,UTF-8有一个特殊特性,那就是它可以带有Byte Order Mark(BOM),这是一个特殊的字节序列,用于标识数据...
在Java编程中,文件过滤是一项常见的任务,尤其在处理大量数据或者进行文件操作时。这里的“简单java文件过滤”指的是通过编程方式筛选出满足特定条件的文件,例如根据文件名、扩展名或文件内容进行过滤,并对这些...
本文将深入探讨标题中的两个关键类:`XssFilter.java` 和 `XssHttpServletRequestWrapper.java`,以及它们在过滤非法字符中的作用。 首先,`XssFilter.java` 是一个实现了Servlet过滤器接口(javax.servlet.Filter...
标题中的“cors-filter-1.7.jar”和“java-property-utils-1.9.jar”是两个Java库的JAR文件,它们在Java开发中扮演着重要角色,特别是对于Web应用程序。这里,我们将深入探讨这两个库的功能和它们在“jasperserver”...
本篇文章将深入探讨中文字符过滤器的工作原理、实现方式以及如何配置,以确保在Java Web应用中正确处理中文参数。 首先,我们要理解乱码问题的来源。当客户端(如浏览器)发送请求到服务器时,如果请求参数的编码...
在IT行业中,过滤器(Filter)是Java Web开发中的一个重要概念,主要应用于Servlet规范中,用于拦截请求和响应,执行一些预处理或后处理任务。本文将深入探讨标题和描述中涉及的几个关键知识点:过滤器乱码问题、...
在提供的`TestT.java`文件中,很可能是包含了一个测试案例,用来演示如何检测和处理这类诡异的不可见字符。通过分析`TestT.java`的代码,我们可以学习如何在实际项目中避免和解决此类问题。具体代码实现可能包括对...
在Java中,属性文件通常用于存储配置信息,如数据库连接字符串、系统参数等。`java-property-utils` 提供了方便的方法来读取、写入和操作这些文件,支持更灵活的属性管理和国际化。这个库在 ArcGIS Server 10.2 中...
在给定的文件信息中,我们看到两个重要的文件:"cors-filter-1.7.jar" 和 "java-util-1.9.1.jar",这些都是与Java相关的库文件,通常用于增强应用程序的功能。 首先,让我们来详细探讨"Cors Filter"。CORS(Cross-...
首先,我们需要了解过滤器(Filter)在Java Web应用中的作用。Filter是Servlet API的一部分,它可以捕获请求和响应,在它们到达目标资源(如Servlet或JSP)之前进行预处理,并在响应返回给客户端之前进行后处理。...
在Java Servlet规范中,提供了`SetCharacterEncodingFilter`这样的过滤器,用于确保请求参数和响应内容的正确编码,避免因为编码不一致导致的数据乱码问题。 1. **字符编码的重要性** 在网络通信中,字符编码扮演...
在Java中,开发人员可能会创建这样的过滤器类来定义一组规则,对输入进行检查,如果发现不符合规则的字符,就进行替换、删除或抛出异常。这个类可能包含了常见的正则表达式,用于匹配和移除特定类型的字符,比如SQL...