如何利用JAVA代码实现文件中某一行中某一段字符串的修改?
假如文件内容如下:baiduzhidaotiwenjavaabcdbadc要想将zhidao改成answer,应该怎样操作,用java...
假如文件内容如下:
baidu zhidao tiwen
java abcd badc
要想将zhidao改成answer,应该怎样操作,用java 展开
baidu zhidao tiwen
java abcd badc
要想将zhidao改成answer,应该怎样操作,用java 展开
4个回答
展开全部
我首先说下思路吧,你想更改文件中的字符串,首先你要使用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();
}
}
}
这里我就用到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();
}
}
}
展开全部
可以利用正则表达式匹配出你需要修改的字符串然后替换的方式修改,或者你已经知道需要修改的字符串直接用替换的方式替换掉就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你什么意思,可以使用
String str=file.readline();//readline()你就可以自己控制了
str.replace("想换的","新换的样子");
如果把问题描述清楚会更好回答
String str=file.readline();//readline()你就可以自己控制了
str.replace("想换的","新换的样子");
如果把问题描述清楚会更好回答
追问
假如文件内容如下:
baidu zhidao tiwen
java abcd badc
要想将zhidao改成answer,应该怎样操作,用java
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种情况,要么将文件一行一行读取出来,再一行一行存回去,读到你要修改的“某一行中某一段字符串”的时候,使用if来进行修改就行。
参考资料:http://zhidao.baidu.com/link?url=pIvK7GNiKRkwjYZJdfEFv6VHjR6Vnm0lgDVYyoVjUo3xWj_57e_Yobqal3a7YtFd0RLlyi_R-DGhqWV5NVHuha
参考资料:http://zhidao.baidu.com/link?url=pIvK7GNiKRkwjYZJdfEFv6VHjR6Vnm0lgDVYyoVjUo3xWj_57e_Yobqal3a7YtFd0RLlyi_R-DGhqWV5NVHuha
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |