0

我有一个包含句子的文件Hello World。我想这样做,如果您按下按钮并且文件包含单词Hello,它将被单词替换Hi,如果文件包含World它将被替换,Earth反之亦然,这样文件就可以包含这些不同的句子:Hello World,,,, 和. 问题是我不知道如何替换文件中的单词,而只是覆盖它。到目前为止,我使用此代码:Hi WorldHello EarthHi 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){

                }
            }
        }

它的问题是一个词会覆盖整个文件而不是仅仅替换一个词,那么我如何让它用另一个词替换一个词而不是覆盖整个文件呢?

4

2 回答 2

1

我如何让它用另一个词替换一个词而不是覆盖整个文件?

你没有。

您在四个不同的字符串中创建四个句子。

你打开文件,一次。你写四个字符串,一次。你关闭文件,一次。

于 2013-05-25T08:39:53.413 回答
1

可能是最干净的方法

PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("filename", true)));

第二个参数通知BufferedWriter类追加到文件的末尾。

或者

您始终可以将整个文件读入您​​创建的数据结构(如对象),然后进行更改并将整个内容写回。

于 2013-05-25T08:38:28.527 回答