Java 如何修改文件的某一行内容

Python0129

Java 如何修改文件的某一行内容,第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()

}

}

}

把文件按行读入一个List,然后遍历这个List,改掉要改的行,重新把list写入文件.

//readString2List

public static List getAllLineFromFile(File file) {

try {

FileReader fr = new FileReader(file.getPath())

BufferedReader br = new BufferedReader(fr)

List list = new ArrayList()

String ss = ""

while ((ss = br.readLine()) != null)

list.add(ss)

fr.close()

return list

} catch (Exception e) {

e.printStackTrace()

return null

}

}

//找到要修改的行,改掉要改的东西

//把list重新写入文件