文件6. 查找替换.txt文本文件中的内容
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文本文件中的内容的更多相关文章
- servlet操作本地文件汇总: 判断文件是否存在;文件重命名;文件复制; 获取文件属性信息,转成Json对象; 获取指定类型的文件; 查找替换.txt中的文本
package servlet; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; ...
- C++怎么读入非文本文件中的内容
C++怎么读入非文本文件中的内容 3条回答 #include <io.h> #include <windows.h> void main() { char* pFileName ...
- 替换excel模板中的内容并使用JavaMail发送邮件
由于在公司工作,常年出差,每天都要以日报的形式向公司汇报当天的工作内容.而日报的内容大体上就只有当天工作的主要内容时变化的,其余的都是不变 的. 而我的电脑刚打开excel有点卡,因此决定使用Java ...
- Flask-在浏览器中直接显示文本文件中的内容
目录结构: project├── info.json├── run.py└── static └── readme.txt # 直接返回static目录下的文件内容 @app.route( ...
- jinja2 中的 Template 批量替换json字符串中的内容
项目中用到elasticsearch,使用Json格式查询方式,一个查询语句中有好几个地方需要替换,且替换的值都相同.最开始把json转为字符串发方式,利用format函数处理,发现再转回json时无 ...
- Python操作txt文本文件
题目: 1.TXT文本文件中的内容为: url:http://119.23.241.154:8080/futureloan/mvc/api/member/login,mobilephone:13760 ...
- sed处理大txt文件(1G) 比如替换某一串字符串,或者删除一行
1.将11.sql文件中"prompt"替换为"--prompt",然后保存为111.sql文件 sed -e "s,prompt,--prompt, ...
- sublime text3怎么批量查找替换文件夹中的字符
在编写代码的时候,往往有些代码是重复的,但是如果要改一处代码,其他的地方也要改.那么怎么批量修改呢?下面小编就以sublime text3为例来讲解一下sublime text3怎么批量查找替换文件夹 ...
- 复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符及在vim中设置tab缩进为4个字符
1.复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符 在命令模式下,使用正则表达式匹配 行首有空白字符行的模式:^[[:space:]] ...
随机推荐
- js清除childNodes中的#text(选项卡中会用到获取第一级子元素)
我们一般为了代码整洁代码都会换行,如上面所述. 获取div1节点下的childNodes var div = document.getElementById('div1') var child = d ...
- 区块链 编译android geth 填坑记录 ubuntu
下载geth 源码 直接 make android 下载android ndk sdk 配置环境变量cd 安装golang 设置环境变量 发现没有gomobile命令 按照wiki方法 执行安装g ...
- vue drag 对表格的列进行拖动排序
用drag实现拖动表格列进行列排序 以下是用到的主要方法 1.dragstart 拖动开始返回目标对象 2.dragenter 拖动过程中经过的对象 3.dragend 拖动结束返回目标对象 ...
- Socket编程 之使用fsockopen()函数
fsockopen函数:初始化一个套接字连接到指定主机(hostname) get方式: client.php <?php //创建连接 $fp=fsockopen('localhost',80 ...
- springboot缓存注解——@CachePut
@CachePut:既调用方法,又更新缓存数据:修改了数据库的某个数据,同时又更新缓存 运行时机: 先调用目标方法 将目标方法的结果缓存起来 注意: @Cacheable的key不能用#result来 ...
- 【Code Tools】Java微基准测试工具JMH之高级篇
一.IntelliJ IDEA JMH Plugin 这是一个插件,允许您以与JUnit相同的方式使用JMH.以下是已经实现的功能: 1.@Benchmark method generation(自动 ...
- vuex 改变状态值得命名问题
今天在做vuex的状态的时候 发现了个奇葩的问题,后面解决了,在改变状态的值得时候 传值的名称 不要和定义的状态的名称值相同,要不然会报错,如图所示 也就是password的名称不能相同,要不监测不到 ...
- 对XML里的属性或元素进行模糊搜索的方法
最近发现几个贴子都是问关于对XML的属性或元素进行模糊搜索的方法,在此发出代码片段示例,希望能够对你有所帮助:) 示例XML private var xml:XML=<employees> ...
- Java开源框架知识整理
1.Spring的了解 Spring是一个轻量级的IOC/DI和AOP容器的开源框架.可以实现Java模块化开发,贯穿表现层,业务层,逻辑层,实现各层之间的解耦合关系. IOC,控制反 ...
- 生成器的认识及其思考:VAE, GAN, Flow-based Invertible Model
生成器对应于认知器的逆过程. 这一切的起源都是当初一个极具启发性的思想:Sleep-wake algorithm——人睡眠时整理记忆做梦,是一个生成的过程,即通过最终的识别结果企图恢复接收到的刺激,当 ...