servlet实现对文本文件的查找替换

.jsp界面

 <form>
<table>
<tr>
<td>选择文本文件:</td>
<td><input type="text" name="filesPath" /></td>
</tr>
<tr>
<td>搜索文本:</td>
<td><input type="text" name="content" /></td>
</tr>
<tr>
<td>替换文本:</td>
<td><input type="text" name="replace" /></td>
</tr>
<tr>
<td colspan="2">
<input type="button" value="提交"/>
</td>
</tr>
</table>
</form>

.js代码

 $().ready(function(){
$("input[type='button']").click(function(){
var filesPath=$("input[name='filesPath'").val();
var con=$("input[name='content']").val();
var replace=$("input[name='replace']").val();
var xmlhttp=getXmlhttp();
var data={"filesPath":filesPath,"content":con,"replace":replace};
xmlhttp.onreadystatechange=function() {
if(xmlhttp.readyState==4 && xmlhttp.status==200) {
alert("转换完成!");
}
};
xmlhttp.open("POST","showFile","true");
xmlhttp.setRequestHeader("Content-Type","application/json");
xmlhttp.send(JSON.stringify(data));
});
});
//获取xmlHttp
function getXmlhttp() {
var xmlhttp;
if(window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest;
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlhttp;
}

servlet层ShowSomeType.java

 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
JSONObject data=getJsonObject(req);
String filesPath=data.getString("filesPath");
String content=data.getString("content");
String replace=data.getString("replace");
boolean seccess=false;
if(filesPath!=null && content!=null && replace!=null)
seccess=replaceFileStr(filesPath,content,replace);
System.out.println(seccess);
} private boolean replaceFileStr(String path, String str, String con) {
try {
FileReader fr=new FileReader(path);          //创建文件输入流
BufferedReader br=new BufferedReader(fr);      
char[] data=new char[1024];               //创建缓冲字符数组
int rn=0;
StringBuilder sb=new StringBuilder();         //创建字符串构件器
while((rn=fr.read(data))>0) {              //读取文件内容到字符串构件器
String content=String.valueOf(data,0,rn);     
sb.append(content);
}
fr.close();
String contentStr=sb.toString().replace(str,con);  //从构件器中生成字符串,并替换搜索文本
FileWriter font=new FileWriter(path);         //创建文件输出流
font.write(contentStr.toCharArray());         //把替换完成的字符串写入文件内
font.close();                       //关闭输出流
return true;
} catch (FileNotFoundException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
} private JSONObject getJsonObject(HttpServletRequest req) {
StringBuffer json=new StringBuffer();
String lineString=null;
BufferedReader reader;
JSONObject data=null;
try {
reader = req.getReader();
while((lineString=reader.readLine())!=null) {
json.append(lineString);
}
data=JSONObject.fromObject(json.toString());
} catch (IOException e) {
e.printStackTrace();
}
return data;
}

文件6. 查找替换.txt文本文件中的内容的更多相关文章

  1. servlet操作本地文件汇总: 判断文件是否存在;文件重命名;文件复制; 获取文件属性信息,转成Json对象; 获取指定类型的文件; 查找替换.txt中的文本

    package servlet; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; ...

  2. C++怎么读入非文本文件中的内容

    C++怎么读入非文本文件中的内容 3条回答 #include <io.h> #include <windows.h> void main() { char* pFileName ...

  3. 替换excel模板中的内容并使用JavaMail发送邮件

    由于在公司工作,常年出差,每天都要以日报的形式向公司汇报当天的工作内容.而日报的内容大体上就只有当天工作的主要内容时变化的,其余的都是不变 的. 而我的电脑刚打开excel有点卡,因此决定使用Java ...

  4. Flask-在浏览器中直接显示文本文件中的内容

    目录结构: project├── info.json├── run.py└── static       └── readme.txt # 直接返回static目录下的文件内容 @app.route( ...

  5. jinja2 中的 Template 批量替换json字符串中的内容

    项目中用到elasticsearch,使用Json格式查询方式,一个查询语句中有好几个地方需要替换,且替换的值都相同.最开始把json转为字符串发方式,利用format函数处理,发现再转回json时无 ...

  6. Python操作txt文本文件

    题目: 1.TXT文本文件中的内容为: url:http://119.23.241.154:8080/futureloan/mvc/api/member/login,mobilephone:13760 ...

  7. sed处理大txt文件(1G) 比如替换某一串字符串,或者删除一行

    1.将11.sql文件中"prompt"替换为"--prompt",然后保存为111.sql文件 sed -e "s,prompt,--prompt, ...

  8. sublime text3怎么批量查找替换文件夹中的字符

    在编写代码的时候,往往有些代码是重复的,但是如果要改一处代码,其他的地方也要改.那么怎么批量修改呢?下面小编就以sublime text3为例来讲解一下sublime text3怎么批量查找替换文件夹 ...

  9. 复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符及在vim中设置tab缩进为4个字符

    1.复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符 在命令模式下,使用正则表达式匹配 行首有空白字符行的模式:^[[:space:]] ...

随机推荐

  1. js清除childNodes中的#text(选项卡中会用到获取第一级子元素)

    我们一般为了代码整洁代码都会换行,如上面所述. 获取div1节点下的childNodes var div = document.getElementById('div1') var child = d ...

  2. 区块链 编译android geth 填坑记录 ubuntu

    下载geth 源码  直接 make android 下载android ndk sdk 配置环境变量cd 安装golang  设置环境变量 发现没有gomobile命令 按照wiki方法 执行安装g ...

  3. vue drag 对表格的列进行拖动排序

    用drag实现拖动表格列进行列排序   以下是用到的主要方法   1.dragstart 拖动开始返回目标对象 2.dragenter 拖动过程中经过的对象 3.dragend 拖动结束返回目标对象 ...

  4. Socket编程 之使用fsockopen()函数

    fsockopen函数:初始化一个套接字连接到指定主机(hostname) get方式: client.php <?php //创建连接 $fp=fsockopen('localhost',80 ...

  5. springboot缓存注解——@CachePut

    @CachePut:既调用方法,又更新缓存数据:修改了数据库的某个数据,同时又更新缓存 运行时机: 先调用目标方法 将目标方法的结果缓存起来 注意: @Cacheable的key不能用#result来 ...

  6. 【Code Tools】Java微基准测试工具JMH之高级篇

    一.IntelliJ IDEA JMH Plugin 这是一个插件,允许您以与JUnit相同的方式使用JMH.以下是已经实现的功能: 1.@Benchmark method generation(自动 ...

  7. vuex 改变状态值得命名问题

    今天在做vuex的状态的时候 发现了个奇葩的问题,后面解决了,在改变状态的值得时候 传值的名称 不要和定义的状态的名称值相同,要不然会报错,如图所示 也就是password的名称不能相同,要不监测不到 ...

  8. 对XML里的属性或元素进行模糊搜索的方法

    最近发现几个贴子都是问关于对XML的属性或元素进行模糊搜索的方法,在此发出代码片段示例,希望能够对你有所帮助:) 示例XML private var xml:XML=<employees> ...

  9. Java开源框架知识整理

    1.Spring的了解     Spring是一个轻量级的IOC/DI和AOP容器的开源框架.可以实现Java模块化开发,贯穿表现层,业务层,逻辑层,实现各层之间的解耦合关系.     IOC,控制反 ...

  10. 生成器的认识及其思考:VAE, GAN, Flow-based Invertible Model

    生成器对应于认知器的逆过程. 这一切的起源都是当初一个极具启发性的思想:Sleep-wake algorithm——人睡眠时整理记忆做梦,是一个生成的过程,即通过最终的识别结果企图恢复接收到的刺激,当 ...