
(Java)编写一个程序,从一个文本文件中删除所有出现某个指定字符串的地方
编写一个程序,从一个文本文件中删除所有出现某个指定字符串的地方。例如,调用JavaExercise9_21Johnfilename从指定文件中删除字符串Johnfile已...
编写一个程序,从一个文本文件中删除所有出现某个指定字符串的地方。例如,调用Java Exercise9_21 John filename 从指定文件中删除字符串John
file已经创建了,但是John消不掉。。
所以哪里出错了? 展开
file已经创建了,但是John消不掉。。
所以哪里出错了? 展开
2个回答
展开全部
额,,因为你操作的是同一个文件,,,
当PrintWriter output=new PrintWriter(file);
的时候,假如文件存在会清空。。。。所以你什么都读不到。。
当PrintWriter output=new PrintWriter(file);
的时候,假如文件存在会清空。。。。所以你什么都读不到。。
更多追问追答
追问
😨可是他要求的就是同一个文件里的删除操作,应该怎么改?
追答
那你就先读出来,将结果存进StringBuilder里面,然后再全部写进原来的文件里就好了
展开全部
public class T12_11 {
public static void main(String[] args)throws Exception{
java.io.File file=new java.io.File("file1.txt");
if(file.exists()) {
System.out.println("File already exists");
}
Scanner input=new Scanner(file);
StringBuilder string =new StringBuilder();
while(input.hasNext()){
String s=input.nextLine();
string.append(s.replaceAll("John"," ") + "\r\n");
}
input.close();
PrintWriter output=new PrintWriter(file);
output.println(string.toString());
output.close();
}
}
public static void main(String[] args)throws Exception{
java.io.File file=new java.io.File("file1.txt");
if(file.exists()) {
System.out.println("File already exists");
}
Scanner input=new Scanner(file);
StringBuilder string =new StringBuilder();
while(input.hasNext()){
String s=input.nextLine();
string.append(s.replaceAll("John"," ") + "\r\n");
}
input.close();
PrintWriter output=new PrintWriter(file);
output.println(string.toString());
output.close();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询