个人博客 地址:http://www.wenhaofan.com/article/20180913160442

代码如下

package com.wenhaofan.common.kit;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter; import com.jfinal.kit.PropKit; /**
* @author 作者:范文皓
* @createDate 创建时间:2018年9月13日 下午3:59:07
*/
public class PropertyKit {
public static void main(String[] args) {
String path=FileKit.class.getResource("/blog_config.txt").getPath() ;
path=path.substring(1, path.length());
replace(path,"theme","newTheme");
String theme=PropKit.use("blog_config.txt").get("theme");
System.out.println(theme); }
public static void replace(String path,String key,String newValue) {
String temp = "";
try {
File file = new File(path);
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
StringBuffer buf = new StringBuffer(); // 保存该行前面的内容
while ( (temp = br.readLine()) != null) { boolean isMath=StrKit.filterNull(temp).split("=")[0].equals(key); if(isMath){
buf = buf.append(key+"="+newValue);
}else{
buf = buf.append(temp);
}
buf = buf.append(System.getProperty("line.separator"));
} br.close();
FileOutputStream fos = new FileOutputStream(file);
PrintWriter pw = new PrintWriter(fos);
pw.write(buf.toString().toCharArray());
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

实现思路

按行读取指定文本中的内容,将内容添加进StringBuffer中,

如果当前行号为指定行号则添加替换的内容,否则添加原内容

然后将StringBuffer中的内容覆盖写入文件

java替换文件中某一行文本的内容的更多相关文章

  1. 使用 sed 命令查找和替换文件中的字符串的 16 个示例

    当你在使用文本文件时,很可能需要查找和替换文件中的字符串.sed 命令主要用于替换一个文件中的文本.在 Linux 中这可以通过使用 sed 命令和 awk 命令来完成. 在本教程中,我们将告诉你使用 ...

  2. 如何用Apache POI操作Excel文件-----如何在已有的Excel文件中插入一行新的数据?

    在POI的第一节入门中,我们提供了两个简单的例子,一个是如何用Apache POI新建一个工作薄,另外一个例子是,如果用Apache POI新建一个工作表.那么在这个章节里面,我将会给大家演示一下,如 ...

  3. 使用Apache POI操作Excel文件---在已有的Excel文件中插入一行新的数据

    package org.test; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx ...

  4. C 语言实例 - 从文件中读取一行

    C 语言实例 - 从文件中读取一行 从文件中读取一行. 文件 runoob.txt 内容: $ cat runoob.txt runoob.com google.com 实例 #include < ...

  5. linux 小技巧(查找替换文件中的ascii编码字符)

    这里纪录一些linux下用到的小技巧,以免遗忘 在linux中经常碰见各种文件处理.最常用的就是替换文件中的某些字符.常见字符替换还是很容易完成.但是有些不可见字符以及ascii编码字符等等都无法直接 ...

  6. 类A是公共的,应在名为A.java的文件中声明错误

    第一种!!! “类A是公共的,应在名为A.java的文件中声明”这句话需要分两步来理解: 1.如果类A被声明为公共的(public),那么必须将类A保存在名为A.java的文件中: 2.反之,在一个文 ...

  7. 用python 替换文件中的git地址

    有个需求要替换文件中git地址,要替换成的git地址是一个变量 本来想用sed替换但是git地址中有斜杠符号 需要转义,提前知道还好弄,如果是变量就不好处理了 #!/usr/bin/python3 # ...

  8. Java入门-类HelloWorld是公共的,应在名为HelloWorld.java的文件中声明

    开始学习java了,搭好环境,notepad++中新建一个java文件,新建一个HelloWorld类, public class HelloWorld { public static void ma ...

  9. linux sed 批量替换文件中的字符串或符号

    sed -i :直接修改读取的文件内容,而不是输出到终端.   sed -i 就是直接对文本文件进行操作的   替换每行第一次出现的字符串 sed -i 's/查找的字符串/替换的字符串/' 文件   ...

随机推荐

  1. maven导入sqlserver驱动jar包依赖包到本地仓库

    maven导入sqlserver驱动jar包依赖包到本地仓库 maven项目使用sqlserver的依赖,先下载一个sqlserver的驱动,网址:https://www.microsoft.com/ ...

  2. linux 查看系统资源使用信息的一些命令集合

    linux上的进程查看及管理工具: pstree,ps,pidof,pgrep,top,htop,glances,pmap,vmstat,dstat,kill,pkill,job,bg,fg,nohu ...

  3. vim配置markdown预览

    注:系统为Centos7,安装了gnome桌面环境. 我的vim装了vimplus工具包,看代码一等一的方便,但是看md的时候还是有些不快乐.于是想找个插件实现markdown的预览. 尝试了几个vi ...

  4. Protobuf用法

    官方文档 什么是 protocol buffer? Protocol buffers are a flexible, efficient, automated mechanism for serial ...

  5. P1308 统计单词数(cin,getline() ,transform() )

    题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给 ...

  6. C# sqlite 事务提交多个语句,提升插入速度

    private SQLiteConnection connection; private SQLiteCommand command; private SQLiteTransaction transa ...

  7. 在csv表格中修改/追加某行数据

    思路: 文本文件不能随意穿插信息,但是通过使用Seek()方法,可以在读取文本文件中移动光标从而修改所要修改的行. 思路步骤: 1.读取文件,打开csv文件,获取文件流,seek移动光标到开始, fo ...

  8. 博客前端live2D实现

    1.本来以为没那么简单,结果看了大佬的https://www.cnblogs.com/liuzhou1/p/10813828.html#4431992的简单明了.效果如下,可随鼠标移动. ①这里添加在 ...

  9. CentOS 编译安装 PyCrypto

    转载自:http://bugcharmer.blogspot.com/2012/07/building-pycrypto-on-amazon-ec2.html Step 1 - Install gcc ...

  10. babel配置文件.babelrc

    Babel是一个广泛应用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执行.意味着可以使用ES6编写程序,而不用担心现有环境是否支持. Babel的配置文件是.babelrc,存放在项目的根 ...