我有一个包含句子Hello World
的文件。我想这样做,如果您按下按钮并且文件包含单词Hello
,它将被单词Hi
替换,如果文件包含World
,它将被替换为Earth
,反之亦然,以便文件可以包含以下不同的句子:Hello World
,Hi World
,Hello Earth
和Hi Earth
。问题是我无法弄清楚如何替换文件中的单词,只是为了覆盖它。到目前为止,我使用此代码:
String command = e.getActionCommand();
if(command.equals("Switch first word"){
if(option.contains("Hello")){
try{
fos = new PrintWriter(new File("Options.dat"));
fos.print("Hi");
fos.close();
}catch(Exception ex){
}
}
if(option.contains("Hi")){
try{
fos = new PrintWriter(new File("Options.dat"));
fos.print("Hello");
fos.close();
}catch(Exception ex){
}
}
}
if(command.equals("Switch second word"){
if(option.contains("World")){
try{
fos = new PrintWriter(new File("Options.dat"));
fos.print("Earth");
fos.close();
}catch(Exception ex){
}
}
if(option.contains("Earth")){
try{
fos = new PrintWriter(new File("Options.dat"));
fos.print("World");
fos.close();
}catch(Exception ex){
}
}
}
问题在于,一个单词将覆盖整个文件而不是单词替换,那么如何将其替换为另一个单词而不是覆盖整个文件?
答案 0 :(得分:1)
可能是最干净的方式
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("filename", true)));
第二个参数通知BufferedWriter
类附加到文件末尾。
或者
您总是可以将整个文件读入您创建的数据结构(如对象),然后进行更改并将整个内容写回来。
答案 1 :(得分:1)
如何将其替换为另一个单词而不是覆盖整个文件?
你没有。
您可以用四个不同的字符串创建四个句子。
您打开文件一次。你写了四个字符串,一次。你关闭文件一次。