Java 如何修改文件的某一行内容 如何利用JAVA代码实现文件中某一行中某一段字符串的修改?

作者&投稿:牢韦 (若有异议请与网页底部的电邮联系)
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!=null;str=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();
}
}
}


按行读取文件,然后将你要换的数据替换掉,然后在重新全部写入文件

String str;
str.replace("小刚", "小王八");

密码怎么解锁

java中如何在文件中修改某行信息~

把文件按行读入一个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重新写入文件

我首先说下思路吧,你想更改文件中的字符串,首先你要使用java中的io把文件里面的内容全部读到一个字符串当中,然后对这个字符串进行查找替换的操作,最后在把你更改之后的这个字符串写进文件当中,当然是覆盖掉这个文件。
这里我就用到FileOutputStream FileInputStream BufferedReader PrintWriter
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;


public class Test {

public static void main(String[] args) {
try {
File file = new File("c:\\abc.txt");
// 建立一个file对象,参数就是你想访问文件的路径,这里我就不验证文件是否存在了
// 查下api即可
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(file)));
List list =new ArrayList();
//定义一个集合存放每一行的字符串
while(true){
String str=br.readLine();
//读取文件当中的一行
if(str==null) break;
//如果读取的是空,也就是文件读取结束 跳出循环
int index=str.indexOf("zhidao");
//看此行的是否包含zhidao
if(index!=-1){
str.replace("zhidao", "answer");
//如果包含就把zhidao 换成answer
}
list.add(str);
//把修改之后的str放到集合当中

}
br.close();

PrintWriter pw=new PrintWriter(file);
//建立一个输出流,把东西写入文件
for(int i=0;i<list.size();i++){
String str =(String)list.get(i);
//从集合当中取出字符串
pw.println(str);
//把该字符串写入文件当中
}
pw.close();
} catch (Exception e) {
e.printStackTrace();
}
}

}