(Java)编写一个程序,从一个文本文件中删除所有出现某个指定字符串的地方

编写一个程序,从一个文本文件中删除所有出现某个指定字符串的地方。例如,调用Java Exercise9_21 John filename 从指定文件中删除字符串John
file已经创建了,但是John消不掉。。
所以哪里出错了?

额,,因为你操作的是同一个文件,,,
当PrintWriter output=new PrintWriter(file);
的时候,假如文件存在会清空。。。。所以你什么都读不到。。追问

😨可是他要求的就是同一个文件里的删除操作,应该怎么改?

追答

那你就先读出来,将结果存进StringBuilder里面,然后再全部写进原来的文件里就好了

追问

(๑• . •๑)可以给一下代码吗?谢谢!!

追答

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Main {
public static void main(String[]args) throws FileNotFoundException{
File file=new File("1.txt");
Scanner stdin=new Scanner(file);
StringBuilder sb=new StringBuilder();

while(stdin.hasNext()){
String line=stdin.nextLine();
sb.append(line.replaceAll("join", "")+"\r\n");
}
stdin.close();
PrintWriter pw=new PrintWriter(file);
pw.println(sb.toString());
pw.close();
}
}

简单的写了下,,思路就是这样的。。。

追问

虽然看不懂,但还是谢谢!

追答

额,,,因为你不能读的时候写啊,,防止覆盖掉原来的文件,,所以你写把数据读出来处理完,存在一个集合类中,,,,等处理完后,,,在重新写入文件中就好了。。。。大体就这个意思

追问

╭(°A°`)╮就是新建一个集合那里看不太懂

那个stdin我们没有学😰

而且我跑了你的程序,不行

追答

额,刚吃饭去了。。。报的啥错误。。我这可以啊。。。。。。是不是找不到文件。。。
那就新建个数组,,,,,只是用来存生成的字符串的而已。。。。。。
stdin是Scanner啊。。。你上边不是也用了吗。。。

追问

(๑• . •๑)是文本内容没有发生改变

追答

额。。你是不是用的1.txt File啊。。。。。。你打印下中间结果。。。。。

追问

不是,我用的是file,但是也不行,文本内容没有发生改变

追答

额。。你代码给我发下。。。。。。。。

追问

好的,迟一点发给你

file1里面的内容就是Java Exercise9_21 John filename

正确程序已写出

追答

额,,写好就好了......明天寝室有同学就去实习了,今晚同学聚会去了.....回来的有点晚了.没看.......不过写好就好了.....

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-08
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();
}
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网