如何替换文件中的内容,请大家帮帮忙,谢谢! 比如文件中有个</tabs>,把它替换成别的内容 或者 在他上面加上内容应该怎么写?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是一次性的,那么拿到linux下用sed指令处理一下就好。 public class TestForEach { /** * @param args */ public static void main(String[] args) { String str = "safsdfdsf<<fsdjka>>fd</tabs>asdllofj,mkdsffsdfsdaff</tabs>sadfs</tabs>"; System.out.println(str.replaceAll("</tabs>", "替换的内容")); }} 是有一个还是很多个?如果都要换的话直接把文件中的内容读出来,放进一个字符串,再replaceAll,最后再写进文件,如果是只换其中特定一个不换别的,就用substring以及indexOf先定位,再replace,最后还是再写进文件 读取文件用Bufferedreader,inputstreamreader,filereader 自由发挥吧 看这个</tab>怎么感觉像xmlxml的话应该是利用dom4j这个包 对于文件应该没有提供直接替换什么的API,楼主你还是一点一点来吧,不要嫌麻烦,先读取修改再读入 import java.io.*;public class TestReplaceFile { /** * @param args * @author 左灯右行。 * @serialData */ public static void main(String[] args) throws IOException{ //读源文件 File f = new File("c:\\src.txt"); FileReader fr = new FileReader(f); BufferedReader bfr = new BufferedReader(fr); //写出文件 File f1 = new File("c:\\result.txt"); if(!f1.exists()){ f1.createNewFile(); } FileWriter fw = new FileWriter(f1); BufferedWriter bfw = new BufferedWriter(fw); String str = ""; String temp = ""; //读一行,写一行; while( (str = bfr.readLine()) != null) { temp = str.replaceAll("</tabs>", "*"); bfw.write(temp); bfw.newLine(); } //关闭流 bfw.close(); fw.close(); bfr.close(); fr.close(); }} 对于内容比较大的文件来说,应该使用多线程就行。此段代码while 循环处应该以 1024kb 作为一批进行读写。有待改进。含有"</tabs>"关键字的文本保存至c:\src.txt(可更改) 程序自动将其替换成 "*"(可更改)结果c:\result.txt Over! 话说这样很痛苦 敢问这个</tab>是XML么 是的话就利用DOM4J这个包吧 我也写了一个,先在d盘下新建一个文件test.txt,假设内容为<family> <people> <sex>aa</sex> </people> <tabs>bb</tabs> <tabs>cc</tabs></family>完后写程序import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;public class Replace { public static void main(String args[]){ BufferedReader br; try { br = new BufferedReader(new InputStreamReader(new FileInputStream("D://test.txt"))); StringBuffer sb = new StringBuffer(); String str = null; while((str = br.readLine())!= null) sb.append(str); FileOutputStream file = new FileOutputStream("D://test.txt"); file.write(sb.toString().replaceAll("</tabs>","</tests>").getBytes()); br.close(); file.close(); } catch (Exception e) { e.printStackTrace(); } }}这样就会把test.txt中的</tabs>替换成别的了(我这里假设替换为</test>),始终在一个文件上操作,没有生成新文件 为了保证程序格式不变,稍微改下,加个"\r\n"import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;public class Replace { public static void main(String args[]){ BufferedReader br; try { br = new BufferedReader(new InputStreamReader(new FileInputStream("D://test.txt"))); StringBuffer sb = new StringBuffer(); String str = null; while((str = br.readLine())!= null) sb.append(str + "\r\n"); FileOutputStream file = new FileOutputStream("D://test.txt"); file.write(sb.toString().replaceAll("</tabs>","</tests>").getBytes()); br.close(); file.close(); } catch (Exception e) { e.printStackTrace(); } }} 求解 关于JList的一些方法调用 初学JAVA 文件名过滤器接口问题 关于 Quick Sort 和 MergeSort 的实验 请问关于字符串处理的一个简单问题 插入MYSQL数据乱码,100分解决 java基础问题 想用java编程实现求代数式最大值问题 java中科学计数法的问题 ActionListener的用法? 求eclipse 3.2 汉化包的官方下载地址 初学java 遇到个问题不懂 关于继承的重写
* @param args
*/
public static void main(String[] args) {
String str = "safsdfdsf<<fsdjka>>fd</tabs>asdllofj,mkdsffsdfsdaff</tabs>sadfs</tabs>";
System.out.println(str.replaceAll("</tabs>", "替换的内容"));
}
}
xml的话应该是利用dom4j这个包
一点来吧,不要嫌麻烦,先读取修改再读入
* @param args
* @author 左灯右行。
* @serialData
*/
public static void main(String[] args) throws IOException{
//读源文件
File f = new File("c:\\src.txt");
FileReader fr = new FileReader(f);
BufferedReader bfr = new BufferedReader(fr);
//写出文件
File f1 = new File("c:\\result.txt");
if(!f1.exists()){
f1.createNewFile();
}
FileWriter fw = new FileWriter(f1);
BufferedWriter bfw = new BufferedWriter(fw);
String str = "";
String temp = "";
//读一行,写一行;
while( (str = bfr.readLine()) != null) {
temp = str.replaceAll("</tabs>", "*");
bfw.write(temp);
bfw.newLine();
}
//关闭流
bfw.close();
fw.close();
bfr.close();
fr.close();
}
}
是的话就利用DOM4J这个包吧
<people>
<sex>aa</sex>
</people>
<tabs>bb</tabs>
<tabs>cc</tabs>
</family>完后写程序import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;public class Replace {
public static void main(String args[]){
BufferedReader br;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream("D://test.txt")));
StringBuffer sb = new StringBuffer();
String str = null;
while((str = br.readLine())!= null)
sb.append(str);
FileOutputStream file = new FileOutputStream("D://test.txt");
file.write(sb.toString().replaceAll("</tabs>","</tests>").getBytes());
br.close();
file.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
这样就会把test.txt中的</tabs>替换成别的了(我这里假设替换为</test>),始终在一个文件上操作,没有生成新文件
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;public class Replace {
public static void main(String args[]){
BufferedReader br;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream("D://test.txt")));
StringBuffer sb = new StringBuffer();
String str = null;
while((str = br.readLine())!= null)
sb.append(str + "\r\n");
FileOutputStream file = new FileOutputStream("D://test.txt");
file.write(sb.toString().replaceAll("</tabs>","</tests>").getBytes());
br.close();
file.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}