将字符串保存到文件

时间:2013-05-24 19:45:03

标签: java string swing file printwriter

我有一个包含句子Hello World的文件。我想这样做,如果您按下按钮并且文件包含单词Hello,它将被单词Hi替换,如果文件包含World,它将被替换为Earth,反之亦然,以便文件可以包含以下不同的句子:Hello WorldHi 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){

                }
            }
        }

问题在于,一个单词将覆盖整个文件而不是单词替换,那么如何将其替换为另一个单词而不是覆盖整个文件?

2 个答案:

答案 0 :(得分:1)

可能是最干净的方式

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

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

或者

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

答案 1 :(得分:1)

  

如何将其替换为另一个单词而不是覆盖整个文件?

你没有。

您可以用四个不同的字符串创建四个句子。

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