gpt4 book ai didi

java - 从文本文件中删除元素

转载 作者:行者123 更新时间:2023-12-01 19:29:09 25 4
gpt4 key购买 nike

我创建了一个名为“Month.txt”的文本文件,其中包含以下字符串:“January February March”。下面是我的程序,它从文本文件中删除“二月”:

import java.io.*;
import java.util.*;

class Delete_element_from_txtfile
{
public static void main()throws IOException
{
FileReader fr=new FileReader("Month.txt");
BufferedReader br=new BufferedReader(fr);

FileWriter fw=new FileWriter("Month.txt");
BufferedWriter bw=new BufferedWriter(fw);
PrintWriter pw=new PrintWriter(bw);

String str;
String newstr="";

while((str=br.readLine())!=null)
{
StringTokenizer S=new StringTokenizer(str);
while(S.hasMoreTokens()==true)
{
String month=S.nextToken();
if(month.equals("February"))
{
continue;
}
else
newstr=newstr+(month+" ");
}
}
pw.print(newstr);

pw.close();
bw.close();
fw.close();

br.close();
fr.close();
}
}

但是运行程序后,当我打开文件时,它全是空的。我刚刚开始用java处理文件,所以我不知道发生了什么。我想要一些关于这个问题的帮助。谢谢!

最佳答案

问题在于您正在打开同一文件进行读写。因为您在读取后立即打开文件进行写入,因此它会覆盖当前数据。

只需在文件阅读器关闭后移动写入代码即可。

这里是更新的代码:

public static void main(String []ars)throws IOException
{
FileReader fr=new FileReader("Month.txt");
BufferedReader br=new BufferedReader(fr);


String str;
String newstr="";

while((str=br.readLine())!=null)
{
StringTokenizer S=new StringTokenizer(str);
while(S.hasMoreTokens()==true)
{
String month=S.nextToken();
if(month.equals("February"))
{
continue;
}
else
newstr=newstr+(month+" ");
}
}


br.close();
fr.close();

FileWriter fw=new FileWriter("Month.txt");
BufferedWriter bw=new BufferedWriter(fw);
PrintWriter pw=new PrintWriter(bw);
pw.print(newstr);

pw.close();
bw.close();
fw.close();

}

关于java - 从文本文件中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60335926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com