import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.util.Properties;
//功能:读取文件,过滤敏感字符后生成新文件
public class ChangeStr {
public static void main(String[] args) {
File file = new File("Stream.txt");//指定任意路径的源文件
ClassLoader loader = Thread.currentThread().getContextClassLoader();
InputStreamReader inStream = null;
try
{
//指定源敏感字符集,使用相对路径-相对于classpath的根路径(字节码输出目录),即bin路径下,注意编码格式
inStream = new InputStreamReader(loader.getResourceAsStream("changeStr.properties"), "UTF-8");
}
catch (Exception e)
{
e.printStackTrace();
}
changeStr(file, inStream);
}
private static void changeStr(File file, InputStreamReader inStream)
{
try (
BufferedReader in = new BufferedReader(new FileReader(file));
BufferedWriter out = new BufferedWriter(new FileWriter("E:/copy/" + file.getName())))//指定生成新文件的路径
{
Properties p = new Properties();
p.load(inStream);//加载敏感字符集
String tmp = null;
while ((tmp = in.readLine()) != null)
{
for (int i = 1; i <= p.size(); i++)
{
String str1 = p.getProperty("" + i);
if (tmp.indexOf(str1) != -1) //判断是否含敏感字符
{
int k = str1.length();
String s1 = "";
for (int j = 0; j < k; j++)
{
s1 = s1 + "*";
}
tmp = tmp.replaceAll(str1, s1);//替换敏感字符为**
}
}
out.write(tmp);
out.newLine();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
#key=value,".properties"
1=妈蛋
2=卧槽
3=尼玛
4=草泥马