如何替换文件中的某一行

如何替换文件中的某一行,第1张

比较稳妥的办法是:

写方式创建一个临时文件

将原文件逐字向临时文件拷贝,拷到你要替换的内容处,转而拷贝要替换的新内容;新内容拷完后,将原文件的读指针移动到要删除的内容之后,接着继续拷贝,直到文件结束。

关闭打开的两个文件,删除原文件,将临时文件更名为原文件名。

为什么要这么做呢?因为你修改的部分的文件块大小新旧可能不一致,不好 *** 作。若是大小严格一致的,则可以用随机访问函数移动指针,直接写到原文件要修改的地方覆盖原数据却可。

import java.io.BufferedReader

import java.io.File

import java.io.FileNotFoundException

import java.io.FileReader

import java.io.FileWriter

import java.io.IOException

import java.io.PrintWriter

public class Day02_B {

static String path="K:/Test/Name.txt"//路径

public static void main(String[] args) {

File fileText=new File(path)//文件

if(fileText.canExecute()) //如果文件存在就继续

setText(fileText,"刚","xx")//“刚”指定改为:“XX”

}

private static void setText(File fileText,String target,String src) {//修改

BufferedReader br=null

PrintWriter pw=null

StringBuffer buff=new StringBuffer()//临时容器!

String line=System.getProperty("line.separator")//平台换行!

try {

br=new BufferedReader(new FileReader(fileText))

for(String str=br.readLine()str!=nullstr=br.readLine()) {

if(str.contains(target)) 

str=str.replaceAll(target,src)

buff.append(str+line)

}

pw=new PrintWriter(new FileWriter(fileText),true)

pw.println(buff)

} catch (FileNotFoundException e) {

e.printStackTrace()

}catch (IOException e) {

e.printStackTrace()

}finally {

if(br!=null)

try {

br.close()

} catch (IOException e) {

e.printStackTrace()

}

if(pw!=null) 

pw.close()

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7922795.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存