当前位置: 首页 > 知识库问答 >
问题:

如何阻止文件编写器覆盖文档中已经存在的文本?Java[重复]

沈华晖
2023-03-14

正如标题所说,我有一个文件编写器,我想多次重复使用该程序并将文本保存到同一文本文档中的新行中。

代码:

        try {
        File password1 = new File("password.txt");
        if (password1.createNewFile()) {
            System.out.println("File created: " + password1.getName());                         //Creates new file and inputs variables
        } else {
            System.out.println("File already exists:");
        }
    } catch (IOException e) {
        System.out.println("An error occurred.");
        e.printStackTrace();
    }

    if (save) {
        try {
            FileWriter myWriter = new FileWriter("password.txt");                       //Saves newly created file as a txt
            myWriter.write(web + ": " + password);
            myWriter.close();
            System.out.println("Successfully wrote to the file");
        } catch (IOException e) {
            System.out.println("An error occurred");
            e.printStackTrace();
        }


    }

共有1个答案

微生景胜
2023-03-14

FileWriter(File File,boolean append):使用指定的文件对象创建FileWriter对象。如果第二个参数为true,则字节将写入文件的末尾而不是开头。如果文件存在但为目录而非常规文件,或不存在但无法创建,或由于任何其他原因无法打开,则抛出IOException

您需要向构造函数添加第二个参数以启用附加模式:

  FileWriter myWriter = new FileWriter("password.txt", true); 
 类似资料:
  • 问题内容: 我正在尝试编写一种方法(如果尚不存在),然后制作一个“ log.txt文件”,然后将其写入该文件。我遇到的问题是每次调用该方法时,它都会覆盖现有的日志。如何更改方法,以使它不会覆盖数据而是仅更新文件? 我的写入文件方法: 问题答案: 只需更改为

  • 问题内容: 嗨,我在写入或追加文件时没有问题,唯一的问题是,一旦我退出程序然后再次运行它,它就会创建一个新文件来覆盖我的原始文件。这是一个问题,因为我正在使用文本文件来保持运行状态。 有没有办法将已经创建的文本文件作为对象然后附加到它? 提前致谢。 问题答案: FileWriter有一个构造函数,它允许您设置带有布尔值的追加。 Java文档

  • 问题内容: 我编写的代码应该覆盖所选文本文件的内容,但是会附加它。我到底在做什么错? 编辑 我尝试制作一个新的temp.txt文件并将新内容写入其中,删除此文本文件并将temp.txt重命名为该文件。事实是,删除总是不成功的。我认为我不必为此更改用户权限吗? 另外,程序的一部分列出了该目录中的所有文件,因此我猜它们正在被程序使用,因此无法删除。但是为什么不覆盖呢? 解决了 我最大的“ D’oh”时

  • 我正在使用Azure Blob存储来上传/下载文件。问题是,如果我上传到azure blob中的任何新文件与已经上传的文件同名,那么它会自动覆盖以前上传的文件的内容。 null 因此,如果我上传一个名为“file1.docx”的新文件,它们有不同的内容。那么blob存储将替换以前上传的file1.docx。所以在这种情况下,我丢失了以前上传的文件。 blob存储有什么方法可以自动检测到有重复,这样

  • 我的问题是“另存为”对话框。如果我保存为一个不存在的复合文档,那么一切都很好。如果我双击一个现有的复合文档,那么我的代码会询问您是否要覆盖它,这也很好。 但是,错误的是,如果您键入现有复合文档的名称并单击save,它就像您单击cancel一样。 我使用FileFilter和FileView来配置所有文件的显示和过滤。 null (无论如何,在我看来)这是错误的。它应该返回APPROVE_OPTIO

  • ##用于写一个 h2 头。每个文档必须以 h2 开头。 这是为了支持 appium.io 文档生成。不要使用---下划线方法创建标题。 不要对标题使用 h1 # 或 ===,因为目录表不支持这样(文件夹名称将用作 h1)。 副标题 ### 用于编写副标题 常规标题 #### 用于不出现在目录里的标题。 不要使用 h5 ##### 或是 h6 ######。 换行符 不要使用 -- 或者 ---这样